در این آموزش به روش های متفاوت پیدا کردن فایل ها و فولدرها در سیستم عامل لینوکس با استفاده از کامند ‘find’ می پردازیم. گاهی اوقات ممکن است که محل ذخیره سازی یک فایل یا فولدر را فراموش کنید. در این حالت با استفاده از ترمینال می توانید در وقت گرانبهای خود صرفه جویی کرده و آن را به سرعت پیدا کنید. در نسخه دسکتاپ لینوکس، یک ابزار جستجوی پیش فرض وجود دارد که تقریباً مانند ترمینال عمل می کند. اما کامند ‘find’ بسیار مفید بوده و به طور قابل ملاحظه ای استفاده از آن آسان است.

آموزش کامل جستجو و پیدا کردن فایل در لینوکس

حتی اگر با کامندهای لینوکس آشنایی دارید، بهتر است تا آموزش های ارائه شده بر روی این بخش را بر روی فایل ها و دایرکتوری های تستی انجام دهید و باید مراقب باشید که این کامندها را با دقت کامل مورد استفاده قرار می دهید. تمام کامندهای به کار رفته در این آموزش بر روی اکثر دستگاه های مجهز به سیستم عامل لینوکس عمل می کنند. ما این آموزش را بر مبنای سیستم عامل اوبونتو 20.04 آماده کرده ایم و کامندها را در ترمینال اجرا می کنید. در اکثر نسخه های لینوکس، با فشار دادن دکمه های Ctrl+Alt+T می توانید پنجره ترمینال را باز کنید.

پیدا کردن یک فایل در لینوکس

پیدا کردن یک فایل در لینوکس

برای شروع بیایید چند فایل آزمایشی در یک دایرکتوری ایجاد کنیم و با استفاده از کامند ‘find’ آنها را پیدا کنیم.

1- یک فولدر آزمایشی همراه با چند فایل داخل آن ایجاد کنید. سپس با کامند ‘ls’ چک کنید که فایل ها و فولدر به طور صحیح ایجاد شده اند یا خیر.

mkdir test

cd test

touch test1.txt test2.h test3.c TEST.f

ls

2- در دایرکتوری ‘test’ فایل test1.txt را پیدا کنید. برای این منظور از کامند find و علامت ‘.’ استفاده کنید. این علامت تعیین می کند که جستجو در فولدری که در حال حاضر در آن قرار دارید انجام شود. پس از اجرای این کامند می توانید فایل test1.txt را به صورت لیست شده به عنوان نتیجه مشاهده کنید.

find . -name test1.txt

جستجوی فایل در لینوکس با به کار بردن بخشی از نام کامل آن

جستجوی فایل در لینوکس با به کار بردن بخشی از نام کامل آن

1- در دایرکتوری تست، کامند زیر را اجرا کنید تا فایل هایی که عبارت “tes” در نام آنها به کار رفته را پیدا کنید.

find . -name “*tes*”

توجه داشته باشید که دستور -name به بزرگی و کوچکی حروف حساس است. پس به عنوان مثال فایل هایی با اسم TEST در لیست نتایج کامند بالا مشاهده نمی شوند.

2- این امکان برای شما وجود دارد تا براساس فرمت فایل ها نیز به جستجوی آنها بپردازید. به عنوان مثال برای یافتن تمام فایل های دارای پسوند .txt کامند زیر را اجرا کنید:

find . -name “*.txt*”

3- اگر می خواهید تا محدودیت بزرگ و کوچک بودن حروف در نتایج جستجو تأثیر نداشته باشد، از دستور -iname استفاده کنید. با اجرای کامند زیر، تمامی فایل هایی که در نام آنها از عبارت tes استفاده شده لیست می شوند؛ حتی فایل TEST.

find . -iname “*tes*”

ایجاد تمایز در جستجوی دایرکتوری ها و فایل ها

ایجاد تمایز در جستجوی دایرکتوری ها و فایل ها

در حالت استاندارد، کامند find تمام نتایج (حاوی دایرکتوری و فایل) را به صورت یکجا ارائه می دهد. شما می توانید به این کامند تگ هایی اضافه کنید که فقط دایرکتوری یا فقط فایل را به عنوان نتیجه جستجو بازگرداند.

1- یک دایرکتوری جدید در دایرکتوری test با نام test2 ایجاد کنید. از دستور ls استفاده کنید تا از ایجاد شدن دایرکتوری جدید مطمئن شوید.

cd test

mkdir test2

ls

2- از کامند find استفاده کنید تا هم دایرکتوری و هم فایل به عنوان نتیجه بازگردد. حتی دایرکتوری test2 نیز در میان نتایج کامند زیر مشاهده می شود.

find . -iname “*test*”

3- تگ -type f را به کامند اضافه کنید تا فقط فایل ها به عنوان نتیجه بازگردند. در لیست نتایج کامند زیر دایرکتوری test2 مشاهده نمی شود.

find . -iname “*test*” -type f

4- از تگ -type d استفاده کنید تا جستجو فقط در میان دایرکتوری ها استفاده شود. در لیست نتایج کامند زیر دایرکتوری test2 هم مشاهده می شود.

find . -iname “*test*” -type d

جستجوی تمام فایل های سیستم در لینوکس

جستجوی تمام فایل های سیستم در لینوکس

اگر مکان ذخیره سازی یک فایل را فراموش کرده اید، می توانید تمام فایل های سیستم را جستجو کنید.

1- فایل test1.txt را از روت سیستم (/) جستجو کنید. این کامند چندان موفقیت آمیز نیست و فقط برای نشان دادن یک مشکل رایج آن را آورده ایم.

cd

find / -iname test1.txt

در اینجا متوجه می شوید که دسترسی جستجوی تمام سیستم را ندارید. نتایج این کامند یک لیست طولانی است که امکان جستجو و پیدا کردن فایل در آن وجود ندارد.

جستجوی تمام فایل های سیستم در لینوکس

2- کامند بالا را با دستور sudo مجدداً اجرا کنید تا دسترسی روت را داشته باشید. لیست نتایج این کامند از لحاظ خوانایی بسیار تمیزتر و آسان تر است.

sudo find / -iname test1.txt

منبع: tomshardware