سلام به همه! با تشکر از بازخورد عالی شما در مورد آموزش من در مورد اصول اولیه find فرمان پس از خواندن آن، بسیاری از مردم درخواست کردند که نسخه پیشرفته تری در مورد آن بنویسم find فرمان

خوب، اینجاست! اکنون زمان آن رسیده است که مهارت های خود را به سطح بعدی ببرید. در این مقاله، اجازه دهید نسخه پیشرفته تر آن را بررسی کنیم find فرمان

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

نحوه جستجو در فایل های متعلق به یک کاربر

را find فرمان آرگومان خاصی به نام user را می پذیرد که می توانید از آن برای فیلتر کردن فایل های متعلق به کاربر استفاده کنید.

نحو به این صورت است:

find [path] -user [username] [options]

فرض کنید می خواهید تمام فایل های متعلق به من را جستجو کنید (نام کاربری من در این لپ تاپ است aruna). با استفاده از دستور زیر می توانید این کار را انجام دهید:

find ./5minslearn/ -user aruna
تصویر-37
جستجوی فایل های متعلق به یک کاربر

دستور بالا تمام فایل های متعلق به کاربر را لیست می کند aruna در 5minslearn فهرست راهنما.

ممکن است متوجه شوید [options] به انتهای نحو اضافه شده است. این اساساً به این معنی است که می توانید هر گونه آرگومان را به دنبال آن اضافه کنید تا جستجوی خود را کمی مؤثرتر کنید.

به عنوان مثال، بیایید سعی کنیم فقط دایرکتوری هایی را که مالک آنها هستم فیلتر کنیم. برای فیلتر کردن دایرکتوری ها، باید آن را اضافه کنید -type گزینه. این دستور برای آن است:

find ./5minslearn/ -type d -user aruna
تصویر-38
دایرکتوری های ایجاد شده توسط یک کاربر را پیدا کنید

از اسکرین شات بالا، می بینید که این دستور تمام دایرکتوری ها و زیرمجموعه های متعلق به من را در داخل فهرست می کند. 5minslearn فهرست راهنما.

نحوه جستجو در فایل هایی که دارای مجوزهای خاص هستند

استفاده کردن -perm آرگومان، می توانید فایل هایی را جستجو کنید که مجوز خاصی دارند.

در اینجا نحو است:

find [path] -perm [permissions] [options]

برای مثال، فرض کنید می‌خواهید همه فایل‌هایی را که دارای مجوز فقط خواندنی هستند در فهرست فعلی جستجو کنید. کد فایل های فقط خواندنی است 400.

توجه داشته باشید: اگر نمی دانید چگونه این کد (400) ایجاد می شود و شما کنجکاو هستید که بدانید، لطفاً به آن مراجعه کنید How can I remove permissions using Octal Mode? بخش وبلاگ مجوز فایل لینوکس من.

find . -perm 400
تصویر-39
فایل هایی با مجوز فقط خواندنی را پیدا کنید

من این را ایجاد کردم welcome.txt فایل با مجوز فقط خواندنی مدتها پیش. از اسکرین شات بالا می توانید ببینید که find فرمان کاملاً آن را شناسایی کرده است.

پیشنهاد می‌کنیم بخوانید:  تبدیل رشته به بولی در جاوا اسکریپت فرض کنید ما مقادیر بولی را در پایگاه داده خود به صورت رشته و مبتنی بر ذخیره کرده ایم روی آن مقادیری که می خواهیم عملیات خاصی را انجام دهیم روی وب سایت/برنامه ما در آن صورت، ما باید قبل از استفاده از آنها در عملیات منطقی، آن رشته ها را به مقادیر بولی تبدیل کنیم. در این مقاله به بررسی ...

من می خواهم تجربه عجیبی را که در زندگی حرفه ای ام با آن روبرو شده ام به اشتراک بگذارم.

من روی پروژه ای کار می کردم که حاوی تعداد زیادی فایل کوچک (حدود 200+) است. از بین آن‌ها، من باید همه فایل‌هایی را پیدا می‌کردم که مجوز فقط خواندنی نداشتند. کاملا مطمئن بودم که آنقدر کم است که بتوانم آنها را روی یک دست بشمارم.

جستجوی بیش از 200 فایل برای یافتن حداکثر 5 فایل فرآیندی زمان بر است. بنابراین، تصمیم گرفتم یک راه جایگزین پیدا کنم.

تو گوگل سرچ کردم از نتیجه تعجب کردم.

من یاد گرفتم که می توانم این کار را فقط با پیش گذاشتن الف انجام دهم -not پرچم با -perm فرمان این دستور برای شماست:

find . -not -perm 400

این دستور همه فایل‌های موجود در فهرست فعلی را که مجوز فقط خواندن ندارند فهرست می‌کند.

تصویر-40
تمام فایل هایی را که مجوز فقط خواندن ندارند را پیدا کنید

مزیت اضافی این است که می توانید این را از قبل آماده کنید -not پرچم قبل از هر گزینه در find دستور برای یافتن مخالف عبارت جستجو.

در اینجا یک مثال دیگر برای شما آورده شده است:

find . -not -type f

با اجرای دستور بالا، تمام مواردی که فایل نیستند (دایرکتوری ها، پیوندهای نمادین و غیره) در فهرست فعلی فهرست می شوند.

نحوه جستجوی فایل هایی که به یک گروه خاص تعلق دارند

همانطور که در آموزش قبلی من در مورد مجوزهای فایل دیدیم، ممکن است چندین نفر وجود داشته باشند که یک ماشین مشترک را برای کار خود به اشتراک بگذارند. آنها با هم به عنوان توسعه دهندگان، QA، و دیگران گروه بندی می شوند.

پس اگر بخواهید همه فایل هایی را که افراد در آن هستند پیدا کنید چه می شود Developers گروه می تواند مشاهده کند؟ این سخت است، درست است؟

اما نگران نباشید. در اینجا یک جایگزین ساده با استفاده از find فرمان

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

نحو عبارت است از:

find [path] -group [groupname] [options]

من یک گروه با نام من در دستگاه خود دارم. بیایید سعی کنیم تمام فایل های متعلق به گروه من را پیدا کنیم.

find . -group aruna
تصویر-41
یافتن دستور برای لیست کردن تمام فایل های متعلق به یک گروه

شما همچنین می توانید ترکیب کنید -group گزینه با دیگر find گزینه های فرمان برای اصلاح جستجوی شما

به عنوان مثال، شما می توانید ترکیب کنید -group گزینه با -perm گزینه ای برای جستجوی فایل هایی که متعلق به یک گروه هستند و مجوزهای خاصی دارند.

find . -group aruna -perm 400
تصویر-42
همه فایل‌هایی را که متعلق به یک گروه با مجوزهای فقط خواندنی هستند، پیدا کنید

دستور بالا تمام فایل‌های فقط خواندنی را که به آن تعلق دارند فهرست می‌کند aruna گروه

به طور مشابه، همانطور که قبلاً اشاره کردم، می توانید آن ها را نیز ترکیب کنید -group گزینه با -not گزینه ای برای یافتن فایل هایی که به گروه خاصی تعلق ندارند.

بیایید سعی کنیم فایل هایی را پیدا کنیم که به آن تعلق ندارند sudo گروه

find . -not -group sudo
تصویر-43
فایل هایی را پیدا کنید که به آن تعلق ندارند sudo گروه

نحوه یافتن فایل های اخیرا اصلاح شده

را -newer گزینه در دستور find فایل‌هایی را جستجو می‌کند که پس از آخرین ویرایش فایل داده شده اصلاح شده‌اند.

پیشنهاد می‌کنیم بخوانید:  بیانیه مورد Bash

نحو به این صورت است:

find [path] -newer [reference_file]

به عنوان مثال، اگر می خواهید تمام فایل هایی را که پس از آن اصلاح شده اند جستجو کنید notes.txt فایل می توانید از دستور زیر استفاده کنید:

find . -newer notes.txt

این دستور تمام فایل‌های موجود در فهرست فعلی را که اخیراً پس از آن اصلاح شده‌اند، جستجو می‌کند notes.txt فایل.

تصویر-44
فایل های اصلاح شده اخیر را پیدا کنید

نحوه جستجوی فایل هایی که چند دقیقه پیش به آنها دسترسی پیدا کرده اند

برای جستجوی فایل هایی که چند دقیقه پیش به آنها دسترسی پیدا کرده اید، می توانید از -amin بحث و جدل. این آرگومان تعداد دقیقه ها را می پذیرد (n) و تمام فایل هایی که به آنها دسترسی دارند را پیدا می کند n دقیقه قبل.

نحو عبارت است از:

find [path] -amin [n] [options]

به عنوان مثال، بیایید سعی کنیم فایل هایی را که در 30 دقیقه گذشته به آنها دسترسی پیدا کرده اند را پیدا کنیم:

find . -amin -30
تصویر-45
همه فایل هایی که در 30 دقیقه گذشته به آنها دسترسی پیدا کرده اند را پیدا کنید

امیدوارم متوجه علامت منفی (منفی) قبل از عدد شده باشید. این نشان می دهد که فایل در گذشته دسترسی داشته است.

نحوه جستجوی همه فایل های خالی

می توانید استفاده کنید -empty برای جستجوی فایل‌ها و دایرکتوری‌هایی که خالی هستند، در دستور find پرچم‌گذاری کنید.

در اینجا نحو است:

find [path] -empty [options]

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

find . -empty
تصویر-46
همه فایل ها و دایرکتوری های خالی را پیدا کنید

برای جستجوی تنها دایرکتوری های خالی، می توانید این ها را ترکیب کنید -empty گزینه با -type گزینه:

find . -type d -empty
تصویر-47
همه دایرکتوری های خالی را پیدا کنید

این دستور تمام دایرکتوری های خالی دایرکتوری فعلی را فهرست می کند.

را -empty پرچم را می توان با -delete پرچم برای حذف تمام فایل ها و پوشه های خالی.

چگونه فایل هایی را پیدا کنیم که با یک عبارت منظم خاص مطابقت دارند

را -regex آرگومان به شما امکان می دهد با استفاده از عبارات منظم (RegEx) یک فیلتر اعمال کنید.

نحو به این صورت است:

find [path] -regex [expression] [options]

به عنوان مثال، فرض کنید می خواهید فایل هایی را که نام آنها با حرف شروع می شود جستجو کنید w. برای این کار می توانید از دستور زیر استفاده کنید:

find . -regex "./w.*"
تصویر-48
همه فایل هایی که با عبارت منظم مشخص شده مطابقت دارند را پیدا کنید

نتیجه

در این مقاله نکات پیشرفته ای را برای جستجوی موثر فایل ها و انجام عملیات های مختلف بر روی آنها آموخته اید.

توصیه می کنم دستور find را با امتحان کردن آن یاد بگیرید. خودتان چند سناریو ایجاد کنید و سعی کنید با استفاده از تکنیک هایی که یاد گرفته اید فایل ها را پیدا کنید.

قرار دادن چند سناریو برای شما در اینجا:

  • فایل هایی را که به آن ختم می شوند را پیدا و حذف کنید .txt
  • فایل هایی را پیدا کنید که متعلق به شما نیستند
  • فایل هایی را پیدا کنید که با یک الگو مطابقت ندارند
  • تمام فایل هایی که با شروع شروع می شوند را پیدا کنید log- و حجمی بین 50 تا 100 مگابایت دارد
  • تمام فایل‌هایی را که متعلق به یک گروه هستند و 10 دقیقه پیش به آن‌ها دسترسی پیدا کرده‌اند، پیدا کنید

امیدواریم از خواندن این مقاله لذت برده باشید!

برای خواندن بیشتر چنین وبلاگ های جالب، در خبرنامه ایمیل من در سایت من مشترک شوید و من را در رسانه های اجتماعی دنبال کنید.