از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
نحوه جستجوی موثر فایل ها در ترمینال لینوکس – راهنمای پیشرفته
سرفصلهای مطلب
سلام به همه! با تشکر از بازخورد عالی شما در مورد آموزش من در مورد اصول اولیه find
فرمان پس از خواندن آن، بسیاری از مردم درخواست کردند که نسخه پیشرفته تری در مورد آن بنویسم find
فرمان
خوب، اینجاست! اکنون زمان آن رسیده است که مهارت های خود را به سطح بعدی ببرید. در این مقاله، اجازه دهید نسخه پیشرفته تر آن را بررسی کنیم find
فرمان
اگر تازه در مورد آن یاد می گیرید find
فرمان برای اولین بار، اصول اولیه جستجوی فایل را پوشش دادم و برخی از دستورات قدرتمند برای جستجوی سریع فایل ها با استفاده از لینوکس را در آموزش قبلی خود بررسی کردم. اگر آن را نخوانده اید و هنوز با آن آشنا نیستید find
، من به شدت توصیه می کنم که از طریق آن نگاهی بیندازید و سپس به اینجا بازگردید.
نحوه جستجو در فایل های متعلق به یک کاربر
را find
فرمان آرگومان خاصی به نام user را می پذیرد که می توانید از آن برای فیلتر کردن فایل های متعلق به کاربر استفاده کنید.
نحو به این صورت است:
find [path] -user [username] [options]
فرض کنید می خواهید تمام فایل های متعلق به من را جستجو کنید (نام کاربری من در این لپ تاپ است aruna
). با استفاده از دستور زیر می توانید این کار را انجام دهید:
find ./5minslearn/ -user aruna
دستور بالا تمام فایل های متعلق به کاربر را لیست می کند aruna
در 5minslearn
فهرست راهنما.
ممکن است متوجه شوید [options]
به انتهای نحو اضافه شده است. این اساساً به این معنی است که می توانید هر گونه آرگومان را به دنبال آن اضافه کنید تا جستجوی خود را کمی مؤثرتر کنید.
به عنوان مثال، بیایید سعی کنیم فقط دایرکتوری هایی را که مالک آنها هستم فیلتر کنیم. برای فیلتر کردن دایرکتوری ها، باید آن را اضافه کنید -type
گزینه. این دستور برای آن است:
find ./5minslearn/ -type d -user aruna
از اسکرین شات بالا، می بینید که این دستور تمام دایرکتوری ها و زیرمجموعه های متعلق به من را در داخل فهرست می کند. 5minslearn
فهرست راهنما.
نحوه جستجو در فایل هایی که دارای مجوزهای خاص هستند
استفاده کردن -perm
آرگومان، می توانید فایل هایی را جستجو کنید که مجوز خاصی دارند.
در اینجا نحو است:
find [path] -perm [permissions] [options]
برای مثال، فرض کنید میخواهید همه فایلهایی را که دارای مجوز فقط خواندنی هستند در فهرست فعلی جستجو کنید. کد فایل های فقط خواندنی است 400
.
توجه داشته باشید: اگر نمی دانید چگونه این کد (400
) ایجاد می شود و شما کنجکاو هستید که بدانید، لطفاً به آن مراجعه کنید How can I remove permissions using Octal Mode?
بخش وبلاگ مجوز فایل لینوکس من.
find . -perm 400
من این را ایجاد کردم welcome.txt
فایل با مجوز فقط خواندنی مدتها پیش. از اسکرین شات بالا می توانید ببینید که find
فرمان کاملاً آن را شناسایی کرده است.
من می خواهم تجربه عجیبی را که در زندگی حرفه ای ام با آن روبرو شده ام به اشتراک بگذارم.
من روی پروژه ای کار می کردم که حاوی تعداد زیادی فایل کوچک (حدود 200+) است. از بین آنها، من باید همه فایلهایی را پیدا میکردم که مجوز فقط خواندنی نداشتند. کاملا مطمئن بودم که آنقدر کم است که بتوانم آنها را روی یک دست بشمارم.
جستجوی بیش از 200 فایل برای یافتن حداکثر 5 فایل فرآیندی زمان بر است. بنابراین، تصمیم گرفتم یک راه جایگزین پیدا کنم.
تو گوگل سرچ کردم از نتیجه تعجب کردم.
من یاد گرفتم که می توانم این کار را فقط با پیش گذاشتن الف انجام دهم -not
پرچم با -perm
فرمان این دستور برای شماست:
find . -not -perm 400
این دستور همه فایلهای موجود در فهرست فعلی را که مجوز فقط خواندن ندارند فهرست میکند.
مزیت اضافی این است که می توانید این را از قبل آماده کنید -not
پرچم قبل از هر گزینه در find
دستور برای یافتن مخالف عبارت جستجو.
در اینجا یک مثال دیگر برای شما آورده شده است:
find . -not -type f
با اجرای دستور بالا، تمام مواردی که فایل نیستند (دایرکتوری ها، پیوندهای نمادین و غیره) در فهرست فعلی فهرست می شوند.
نحوه جستجوی فایل هایی که به یک گروه خاص تعلق دارند
همانطور که در آموزش قبلی من در مورد مجوزهای فایل دیدیم، ممکن است چندین نفر وجود داشته باشند که یک ماشین مشترک را برای کار خود به اشتراک بگذارند. آنها با هم به عنوان توسعه دهندگان، QA، و دیگران گروه بندی می شوند.
پس اگر بخواهید همه فایل هایی را که افراد در آن هستند پیدا کنید چه می شود Developers
گروه می تواند مشاهده کند؟ این سخت است، درست است؟
اما نگران نباشید. در اینجا یک جایگزین ساده با استفاده از find
فرمان
با استفاده از -group
استدلال در find
دستور شما می توانید تمام فایل های متعلق به یک گروه را جستجو کنید.
نحو عبارت است از:
find [path] -group [groupname] [options]
من یک گروه با نام من در دستگاه خود دارم. بیایید سعی کنیم تمام فایل های متعلق به گروه من را پیدا کنیم.
find . -group aruna
شما همچنین می توانید ترکیب کنید -group
گزینه با دیگر find
گزینه های فرمان برای اصلاح جستجوی شما
به عنوان مثال، شما می توانید ترکیب کنید -group
گزینه با -perm
گزینه ای برای جستجوی فایل هایی که متعلق به یک گروه هستند و مجوزهای خاصی دارند.
find . -group aruna -perm 400
دستور بالا تمام فایلهای فقط خواندنی را که به آن تعلق دارند فهرست میکند aruna
گروه
به طور مشابه، همانطور که قبلاً اشاره کردم، می توانید آن ها را نیز ترکیب کنید -group
گزینه با -not
گزینه ای برای یافتن فایل هایی که به گروه خاصی تعلق ندارند.
بیایید سعی کنیم فایل هایی را پیدا کنیم که به آن تعلق ندارند sudo
گروه
find . -not -group sudo
نحوه یافتن فایل های اخیرا اصلاح شده
را -newer
گزینه در دستور find فایلهایی را جستجو میکند که پس از آخرین ویرایش فایل داده شده اصلاح شدهاند.
نحو به این صورت است:
find [path] -newer [reference_file]
به عنوان مثال، اگر می خواهید تمام فایل هایی را که پس از آن اصلاح شده اند جستجو کنید notes.txt
فایل می توانید از دستور زیر استفاده کنید:
find . -newer notes.txt
این دستور تمام فایلهای موجود در فهرست فعلی را که اخیراً پس از آن اصلاح شدهاند، جستجو میکند notes.txt
فایل.
نحوه جستجوی فایل هایی که چند دقیقه پیش به آنها دسترسی پیدا کرده اند
برای جستجوی فایل هایی که چند دقیقه پیش به آنها دسترسی پیدا کرده اید، می توانید از -amin
بحث و جدل. این آرگومان تعداد دقیقه ها را می پذیرد (n
) و تمام فایل هایی که به آنها دسترسی دارند را پیدا می کند n
دقیقه قبل.
نحو عبارت است از:
find [path] -amin [n] [options]
به عنوان مثال، بیایید سعی کنیم فایل هایی را که در 30 دقیقه گذشته به آنها دسترسی پیدا کرده اند را پیدا کنیم:
find . -amin -30
امیدوارم متوجه علامت منفی (منفی) قبل از عدد شده باشید. این نشان می دهد که فایل در گذشته دسترسی داشته است.
نحوه جستجوی همه فایل های خالی
می توانید استفاده کنید -empty
برای جستجوی فایلها و دایرکتوریهایی که خالی هستند، در دستور find پرچمگذاری کنید.
در اینجا نحو است:
find [path] -empty [options]
برای جستجوی تمامی فایل ها و دایرکتوری های خالی، می توانید از دستور زیر استفاده کنید:
find . -empty
برای جستجوی تنها دایرکتوری های خالی، می توانید این ها را ترکیب کنید -empty
گزینه با -type
گزینه:
find . -type d -empty
این دستور تمام دایرکتوری های خالی دایرکتوری فعلی را فهرست می کند.
را -empty
پرچم را می توان با -delete
پرچم برای حذف تمام فایل ها و پوشه های خالی.
چگونه فایل هایی را پیدا کنیم که با یک عبارت منظم خاص مطابقت دارند
را -regex
آرگومان به شما امکان می دهد با استفاده از عبارات منظم (RegEx) یک فیلتر اعمال کنید.
نحو به این صورت است:
find [path] -regex [expression] [options]
به عنوان مثال، فرض کنید می خواهید فایل هایی را که نام آنها با حرف شروع می شود جستجو کنید w
. برای این کار می توانید از دستور زیر استفاده کنید:
find . -regex "./w.*"
نتیجه
در این مقاله نکات پیشرفته ای را برای جستجوی موثر فایل ها و انجام عملیات های مختلف بر روی آنها آموخته اید.
توصیه می کنم دستور find را با امتحان کردن آن یاد بگیرید. خودتان چند سناریو ایجاد کنید و سعی کنید با استفاده از تکنیک هایی که یاد گرفته اید فایل ها را پیدا کنید.
قرار دادن چند سناریو برای شما در اینجا:
- فایل هایی را که به آن ختم می شوند را پیدا و حذف کنید
.txt
- فایل هایی را پیدا کنید که متعلق به شما نیستند
- فایل هایی را پیدا کنید که با یک الگو مطابقت ندارند
- تمام فایل هایی که با شروع شروع می شوند را پیدا کنید
log-
و حجمی بین 50 تا 100 مگابایت دارد - تمام فایلهایی را که متعلق به یک گروه هستند و 10 دقیقه پیش به آنها دسترسی پیدا کردهاند، پیدا کنید
امیدواریم از خواندن این مقاله لذت برده باشید!
برای خواندن بیشتر چنین وبلاگ های جالب، در خبرنامه ایمیل من در سایت من مشترک شوید و من را در رسانه های اجتماعی دنبال کنید.
منتشر شده در 1402-12-26 21:03:03