از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
نحوه جستجوی موثر فایل ها در ترمینال لینوکس
سرفصلهای مطلب
آیا تا به حال از جستجوی دستی فایل ها در رایانه خود احساس ناامیدی کرده اید؟ اگر یک برنامهنویس یا مهندس DevOps هستید که روی سرورهای لینوکس بدون رابط کاربری گرافیکی کار میکنید، پیدا کردن فایلها به این طرف و آن طرف سخت خواهد بود.
بسیاری از مردم از قدرت پایانه های لینوکس بی اطلاع هستند. لینوکس دارای یک خط فرمان فوق العاده قدرتمند است که به شما امکان می دهد فایل ها و دایرکتوری ها را در کسری از ثانیه جستجو کنید.
چه مبتدی و چه متخصص، و اگر به دنبال ارتقای مهارت های مدیریت فایل خود به سطح بعدی هستید، به نقطه درستی رسیده اید. این مقاله به شما کمک می کند تا اصول رایج ترین آنها را درک کنید پیدا کردن دستور در لینوکس
چیست find
فرمان در لینوکس؟
را find
دستور به شما امکان می دهد فایل ها و دایرکتوری ها را در رایانه خود جستجو کنید. این انعطاف پذیری را برای جستجوی فایل ها در یک دایرکتوری خاص یا به صورت بازگشتی از طریق همه زیرشاخه ها اضافه می کند.
بیایید قدرت آن را بررسی کنیم find
فرمان
چگونه یک فایل را بر اساس نام جستجو کنیم
فرض کنید فایلی به نام ذخیره کرده اید hello_world.html
جایی و شما حتی نام دایرکتوری را به خاطر نمی آورید. اما رئیس شما از شما می خواهد که فوراً پرونده را برای آنها ارسال کنید.
معمولاً، اگر فراموش کردهاید که یک فایل را در کجا ذخیره کردهاید، ابتدا پوشهها را مرور میکنید و بررسی میکنید که آیا فایل وجود دارد یا خیر.
این زمانی است که find
دستور کار عالی انجام می دهد. به جای جستجوی دستی فایل در رایانه، می توانید از آن استفاده کنید find
فرمان برای خودکار کردن فرآیند
با عبور نام فایل با استفاده از -name
پرچم، find
دستور جستجو می کند و مکان فایل را برمی گرداند.
اما به یاد داشته باشید -name
flag جستجوی حساس به حروف بزرگ را انجام می دهد. اگر به دنبال انجام یک جستجوی غیر حساس به حروف بزرگ و کوچک هستید، می توانید از آن استفاده کنید -iname
به جای پرچم
شما همچنین می توانید استفاده کنید find
فرمان به عنوان جایگزینی برای ls
در بعضی جاها فرمان دهید بیایید فرض کنیم باید تمام فایلهایی را که با آن ختم میشوند را پیدا کنید .txt
افزونه. شما می توانید این کار را با find
دستور با استفاده از الگوی regex (*.txt
).
این دستور همه موارد را فهرست می کند .txt
فایل های موجود در دایرکتوری فعلی شما و زیرشاخه های آن.
برای پیدا کردن .txt
فایل های موجود در یک دایرکتوری و زیر شاخه خاص، می توانید آن را جایگزین کنید /path/to/search
با مسیر دایرکتوری شما
نحوه یافتن دایرکتوری در لینوکس
جستجوی دایرکتوری با عبور از مسیر امکان پذیر است d
به -type
پارامتر در find
فرمان
در تصویر بالا، یک دایرکتوری با نام پیدا می کنیم zip
از دایرکتوری فعلی ما
به طور مشابه -type
گزینه گزینه های پارامتر دیگر را می پذیرد تا فرآیند یافتن ما را ساده کند.
f
لیست فایل های معمولی را پیدا می کندb
لیست دستگاه های بلوک را پیدا می کندc
لیست دستگاه های کاراکتر را پیدا می کندl
لیست پیوندهای نمادین را پیدا می کندs
لیست سوکت ها را پیدا می کندp
لوله های نامگذاری شده را پیدا می کند
چگونه یک فایل را بر اساس اندازه در لینوکس جستجو کنیم
اضافه کردن -size
گزینه همراه با find
دستور به شما کمک می کند فایل ها را بر اساس اندازه پیدا کنید. Prepend a +
یا -
به اندازه ای که به ترتیب نشان دهنده بزرگتر و کمتر از.
در اسکرین شات بالا، ما همه فایل هایی را پیدا می کنیم که حجم آنها بیشتر از 1 گیگابایت است.
همچنین می توانید تمام فایل هایی را که در محدوده اندازه خاصی قرار دارند جستجو کنید.
به عنوان مثال، اگر میخواهید تمام فایلهایی که حجم بالای 50 مگابایت و زیر 100 مگابایت دارند را پیدا کنید، میتوانید دستور زیر را اجرا کنید:
می توانید اندازه را در نماد دلخواه خود مشخص کنید. تعدادی از نمادهای موجود عبارتند از:
- K نشان دهنده KB است
- M نشان دهنده MB است
- G نشان دهنده GB است
- b نشان دهنده بایت است
- c نشان دهنده بلوک ها است
چگونه یک فایل را بر اساس زمان اصلاح شده جستجو کنیم
هر فایل دارای یک زمان ایجاد و آخرین به روز رسانی مرتبط با آن است. بیایید فرض کنیم هزاران فایل در دایرکتوری خود دارید. شما یک فایل را در چند روز گذشته ویرایش کردید و نام آن را فراموش کردید. مطمئن هستید که بعد از آن فقط چند فایل را ویرایش کرده اید.
در چنین مواردی، می توانید تمام فایل هایی را که در 7 روز گذشته اصلاح شده اند، پیدا کنید. این امر جستجوی شما را از بیش از 1000 فایل به مقدار قابل کنترل تری محدود می کند. پس از اجرای دستور، میتوانید فایلی را که ویرایش کردهاید، در چند ثانیه پیدا کنید.
این امر با عبور امکان پذیر است -mtime
پارامتر با find
فرمان
بیایید سناریوی دیگری را فرض کنیم، که در آن تاریخ امروز 10 فوریه 1402 است. شما یک فایل را قبل از 3 فوریه 1402 تغییر داده اید. پس از 3 فوریه 1402، بسیاری از فایل ها را تغییر داده اید. شما باید فایلی را که قبل از 3 فوریه 1402 تغییر داده اید پیدا کنید. بنابراین، اساساً به فایل هایی نیاز دارید که قبل از 3 فوریه 1402 اصلاح شده اند.
سناریوی عجیب، درست است؟
اما، شما همچنین می توانید این پرس و جو را با استفاده از find
فرمان شما می توانید با تعویض علامت منفی (-) با علامت مثبت (+) به این امر دست یابید.
در اینجا دستور اصلاح شده برای شما آمده است:
نحوه اجرای یک فرمان روی فایل های فیلتر شده از find
فرمان
این سوال ممکن است شما را گیج کند. قبل از فاش کردن پاسخ، اجازه دهید سوال را به وضوح با یک سناریوی واقعی درک کنیم.
فرض کنید 1000 فایل در یک دایرکتوری دارید و آن را اجرا می کنید find
دستور 20 فایل مطابق را برمی گرداند. شما می خواهید این 20 فایل را به دایرکتوری دیگری منتقل کنید. چگونه می توانید به آن دست پیدا کنید؟
به زبان ساده، باید روی هر یک از فایل های فیلتر شده یک دستور اجرا کنیم.
شما می توانید این کار را با عبور از -exec
گزینه با find
فرمان
را -exec
گزینه بر روی هر فایلی که در جستجو یافت می شود دستوری را اجرا می کند. را -exec
پس از گزینه، یک فرمان و آرگومان های آن، با {}
نمادهایی که نشان دهنده مسیر فایل در حال پردازش هستند.
برای نشان دادن پایان -exec
دستور، باید اضافه کنیم \;
(یک اسلش معکوس و یک نیم دو نقطه).
در اینجا نحو است:
بیایید سعی کنیم فایل های فیلتر شده را از قسمت منتقل کنیم 5minslearn
دایرکتوری به zip
فهرست راهنما.
این دستور این است:
find ./5minslearn -name "*.zip" -exec mv {} ./5minslearn/zip \;
این دستور تمام فایل هایی که با a ختم می شوند را جستجو می کند .zip
در ./5minslearn
دایرکتوری و سپس هر فایل را به ./5minslearn/zip
فهرست راهنما.
را -exec
این گزینه به شما امکان می دهد تا طیف گسترده ای از عملیات را بر روی فایل های یافت شده انجام دهید. می توانید با کپی کردن، حذف یا حتی تغییر دستور مجوز فایل، دستور move از مثال بالا را جایگزین کنید.
نحوه اجرای یک فرمان روی فایل های فیلتر شده با تایید
اگر مطمئن نباشند که آیا این عملیات را روی هر فایل اعمال کنند، اکثر مردم ترجیح می دهند از این استفاده کنند.
را -ok
گزینه مشابه است -exec
گزینه ای به جز اینکه قبل از اجرای عملیات روی هر فایل، درخواست تایید می کند. این دستور برای بررسی فایل هایی که قبل از اجرای عملیات خاص تحت تأثیر قرار می گیرند بسیار مفید است. همچنین اگر مطمئن نیستید یا نمیخواهید دستور را اعمال کنید، میتوانید آن را رد کنید.
به عنوان مثال، این بار بیایید سعی کنیم آن را جابجا کنیم .txt
فایل ها به دایرکتوری دیگر
دستور بالا تمام فایل های دارای a را جستجو می کند .txt
پسوند در ./5minslearn
دایرکتوری و سپس از کاربر می خواهد که قبل از انتقال هر فایل به آن را تایید کند ./5minslearn/text_files
فهرست راهنما.
برای تایید عملیات، وارد کنید yes
و no
برای رد کردن عملیات و پرش به فایل بعدی.
را -ok
این گزینه زمانی مفید است که میخواهید در مورد فایلهایی که در حال اصلاح هستید محتاط باشید، زیرا به شما امکان میدهد قبل از اجرای دستور مشخص شده، هر فایل و مکان آن را بررسی کنید.
چگونه یک فایل با اطلاعات دقیق پیدا کنیم
را -ls
گزینه موجود در دستور find برای نمایش اطلاعات فایل های یافت شده در جستجو در قالب دستور ls استفاده می شود. این گزینه اطلاعات دقیقی در مورد فایل ها، مانند مجوزها، مالک، اندازه و آخرین زمان تغییر آنها ارائه می دهد.
نحوه یافتن و حذف فایل ها
آیا تا به حال نیاز به پیدا کردن فایل ها و حذف آنها از رایانه داشته اید؟ را -delete
گزینه در دستور find این کار را برای شما انجام می دهد. این به شما امکان می دهد فایل هایی را که با معیارهای مشخص شده مطابقت دارند حذف کنید.
find . -name "*.<extension>" -delete
در مثال بالا می بینید که دستور find فایل ها را با .html
افزونه
توجه: این عملیات غیر قابل برگشت است. هنگام اجرای عملیات حذف، 100% مطمئن باشید.
من توصیه می کنم اجرا کنید find
فرمان بدون -delete
ابتدا پرچم گذاری کنید و مطمئن شوید که فقط فایل هایی که باید حذف شوند نشان داده می شوند. هنگامی که مطمئن شدید، می توانید همان دستور را به صورت پیوست اجرا کنید -delete
پرچم.
نتیجه
در این مقاله، نحوه جستجوی موثر فایل ها با استفاده از ترمینال لینوکس را یاد گرفتید.
اینها گزینه های بسیار ابتدایی در دستور find هستند که فکر می کنم هر توسعه دهنده ای باید بداند. من معتقدم تسلط بر اصول اولیه اولین قدم برای پیشرفته تر شدن با لینوکس است. من اصول اولیه را در تمام وبلاگ هایم پوشش داده ام تا به شما در ایجاد یک پایه محکم کمک کنم.
برای کسب اطلاعات بیشتر در مورد لینوکس، در خبرنامه ایمیل من در سایت من مشترک شوید و من را در رسانه های اجتماعی دنبال کنید.
منتشر شده در 1402-12-27 03:12:07