البحث عن الملفات و المجلدات باحترافية باستخدام الامر Find

بسم الله الرحمن الرحيم



من أهم الاشياء التي من الضروري تعلمها و استخدامها من طرف مستخدمي لينكس هو استعمال سطر الأوامر في بعض المهام ، إذ لا يوجد كل مقابل لكل أمر و الذي سيسهل استخدام النظام، الامر الذي يحتم على المستخدم اتباع شروحات تتضمن تطبيق أوامر على الطرفية. 

وفي سلسلة من المواضيع سأحاول طرح عدد من الاوامر الهامة التي على كل مستخدم أن يحفظها، و بالأخص المبتدئين. و سأفتتح بأمر find للبحث عن المجلدات و الملفات.

الامر find هو من أكثر الاوامر استخداما للبحث عن ملفات انطلاقا من الطرفية، يمكّنك من البحث عن ملفات عن طريق تاريخ التعديل، الاسم، الصلاحيات، الحجم الخ... وفي هذا الموضوع سأشرع في تقديم اكثر الخصائص استخداما للامر. اضافة إلى أنه يتواجد في أغلب التوزيعات افتراضيا.

الصيغة العامة 
$ find location comparison-criteria search-term
location = مسار البحث
comparison-criteria = خصائص البحث
search-term= اسم الملف

عند تطبيق الامر بدون اي اضافة


البحث في مجلد معين "في هاته الحالة سيعرض لنا الأمر كل الملفات المتواجدة في هذا المسار و بطريقة تشعبية"
find /home/testing/linux
 البحث في مجلد عن ملف معين
find /home/testing/linux -name "abc.html"
البحث في المجلد عن الملف/الملفات من نوع محدد
find /home/testing/linux -name "*.html"
 البحث عن ملفات بشرط عدم تحقق الشرط عليه أي ألا يكون ملف html في هاته الحالة
find /home/testing/linux -not -name "*.html"
أو
 find /home/testing/linux ! -name "*.html"
يمكن البحث باستخدام الشرطين مثلا
find /home/testing/linux -name "abc*" ! -name "*.html"
 يمكن أيضا البحث بوضع شرطين لكن بطريقة اختيارية أي سيظهر أي نتيجة تحقق شرط واحد
find /home/testing/linux -name "*.html" -o -name "*.txt"
بالإضافة إلى إمكانية وضع شرطين إجباريين باستبدال خاصية o- ب and- أي سيظهر النتائج التي تحقق الشرطين معا


 البحث عن الملفات فقط
find /home/testing -type f -name "linux"
 البحث عن المجلدات فقط
find /home/testing -type d -name "abc.html"
البحث عن الملفات المخفية في Home
find ~ -type  f ".*"
 البحث عن ملفات التي تحقق الصلاحيات المطلوبة ، في هذا المثال سنقوم ببحث عن ملفات ذات صلاحيات 777
find . -type f -perm -777
 يمكن أيضا البحث عن ملفات التي لا تتضمن صلاحيات معينة مثلا777-
find . -type f ! -perm -777
 يمكن كذلك البحث انطلاقا من الصلاحيات بطريقة مختلفة مثلا فقط التنفيذ
find /bin -perm /a=x
 البحث عن مجلدات/ملفات تم حفضها في مدة تقل عن 50 يوم مثلا
find / -mtime 50
 البحث عن مجلدات/ملفات تم الولوج اليها مدة تقل عن 50 يوم مثلا
find / -atime 50
البحث عن مجلدات/ملفات حفضت في مدة زمنية معينة مثلا ما بين 50 الى 100 يوم
find / -mtime +50 -mtime -100
البحث ‫عن مجلدات/ملفات تم تعديل فيها (خصائص، صلاحيات ...)
 find ~ -cmin 27


البحث عن مجلدات/ملفات عن طريق الحجم
find / -size 50M
البحث عن مجلدات/ملفات حجمها محصور بين قيمتين
find / -size +50M -size -100M
يمكن أيضا تغيير وحدة الحجم التخزينية كما يوجد في الجدول الأتي:


 مسح ملفات ضمن  شروط خاصة مثلا ذات الامتداد .BAK
find / -type f -name "*.BAK" -delete
و يمكنكم أيضا أن تتعرفو أكثر على هذا أمز من man الخاص به :

man find

اتمنى ان اكون قد قمت بتغطية كل ما يلزم لاستخدام الأمر find ، ألقاكم في درس آخر إن شاء الله. بالتوفيق


الإبتساماتإخفاء