هل سبق لك أن وجدت نفسك تبحث بشكل محموم عن ملف مهم ، فقط لإدراك أنك أهدرت ساعات طويلة في محاولة البحث في كل دليل ولكن الملف لم يتم العثور عليه في أي مكان؟ حسنًا ، هذه مشكلة شائعة يواجهها معظم مستخدمي Linux ، خاصةً المستخدمين الجدد الذين لديهم عدد كبير من الملفات والأدلة غير المنظمة. في هذه المقالة ، نوضح كيف يمكنك البحث عن الملفات والدلائل بطرق مختلفة باستخدام الأمر find في Linux.
ما هو أمر البحث في لينكس
يعد الأمر find أحد أهم الأدوات التي تساعد مستخدمي Linux في البحث عن ملفاتهم ومجلداتهم بمجموعة متنوعة من الخيارات. يمكنك حتى تنفيذ أوامر shell على عناصر البحث التي تم إرجاعها (المزيد عنها لاحقًا!). صيغة البحث عن الملفات والأدلة باستخدام الأمر find هي:
find <options> <location> <expression>
هنا كيف سنشرح بناء الجملة أعلاه:
<options>
هي الخيارات المختلفة المستخدمة لتحسين البحث<location>
يحدد الموقع في الذاكرة للبحث فيه عن أمر البحث<expression>
يحدد عنصر البحث للبحث عنه
بعض الخيارات الشائعة للاقتران بأمر البحث هي:
خيارات | وصف |
---|---|
-name |
يستخدم هذا الخيار لتحديد اسم الملف أو المجلد. |
-type |
هذا يحدد نوع العناصر للبحث عنها. |
-exec |
تُستخدم علامة exec لتنفيذ أوامر shell على الإخراج. |
-size |
تقوم هذه العلامة بتصفية العناصر بناءً على حجم إشغال الذاكرة. |
-perm |
تقوم هذه العلامة بتصفية الملفات والأدلة بناءً على أذوناتها. |
-user |
تُستخدم هذه العلامة للبحث عن الملفات والأدلة التي يمتلكها مستخدم معين. |
أفضل الطرق لاستخدام أمر البحث في Linux
الطريقة الأكثر شيوعًا للبحث عن الملفات والأدلة باستخدام الأمر find في Linux هي باسم كل منها. إذا كنت لا تعرف اسم الملف الدقيق ، فيمكن استخدام أمر البحث الذي يكون متعدد الاستخدامات للبحث عن الملفات حتى مع وجود جزء من الاسم.
1. البحث عن ملفات محددة ذات الاسم المطابق
للبحث عن الملفات والمجلدات باستخدام الأمر find ، استخدم علامة -iname. فائدة البحث بهذه العلامة هي أنه سيبحث عن الاسم المعطى متجاهلاً حالة اسم الملف. صيغة استخدام الأمر find مع العلامة -iname هي:
find <location> -iname <search_name>
على سبيل المثال ، إذا كنت تريد البحث عن الملف “test.txt” في الدليل الحالي ، فاستخدم هذا الأمر:
find . -iname "test.txt"
هنا ، “.” يمثل الدليل الحالي من حيث وضع العنونة النسبي لموقع الملف. يمكنك حتى استخدام وضع العنونة المطلق لموقع الملف بدلاً من ذلك إذا وجدت صعوبة في فهم الوضع النسبي.
ستتجاهل علامة “-iname” حالة أسماء الملفات. للبحث عن أسماء الملفات التي تتطابق تمامًا مع اسم الملف ، ما عليك سوى استبدال علامة -iname بعلامة -name:
find <location> -name <name_to_search>
2. البحث عن الملفات حسب نمط الاسم في Linux
تحتاج أحيانًا إلى العمل مع ملف مهم ولكن لا يمكنك تذكر الاسم الكامل للملف. حتى في هذه الحالة ، يمكن أن يكون أمر البحث هو منقذك. ما عليك سوى استخدام أحرف البدل لمطابقة النمط الخاص باسم الملف الخاص بك. سيحاول Wildcards بعد ذلك مطابقة النمط المحدد مع جميع الأسماء المتاحة. لنفترض أنك بحاجة إلى البحث عن ملف “test-101.py” في الدليل الحالي ، يمكنك استخدام الأمر التالي:
سيؤدي هذا إلى سرد الملفات المختلفة التي تبدأ بالاسم “test” في أسماء الملفات الخاصة بهم كما هو موضح أدناه:
find . -type f -iname "test*"
هنا ، تتم إضافة النوع f لتحديد نوع عنصر البحث كملفات. تأكد أيضًا من استخدام تعبير حرف البدل في زوج من علامات الاقتباس المزدوجة لمنع أي أخطاء.

3. البحث عن الملفات أو الدلائل ذات الأسماء المتطابقة
بشكل عام ، يبحث أمر البحث عن جميع الملفات والمجلدات المطابقة للاسم. للبحث عن الملفات فقط ، استخدم الخيار “-type f” مع بناء الجملة الأساسي:
find <location> -type f -name <name_to_search>
على سبيل المثال ، سيعرض الأمر التالي جميع الملفات التي تحمل الاسم “test”:
find . -type f -iname "test*"

للبحث عن أدلة فقط ، استخدم علامة “-type d” مثل:
find <location> -type d -iname <name_to_search>
على سبيل المثال ، سيُظهر الأمر التالي جميع الأدلة التي تحمل الاسم “test”:
find . -type d -iname "test*"

4. البحث عن الملفات ذات الامتدادات الخاصة
مع التركيبة القاتلة من أحرف البدل والأمر find ، يمكنك حتى البحث عن الملفات بناءً على امتداداتها. على سبيل المثال ، إذا كنت بحاجة إلى البحث عن ملف تكوين في الدليل الحالي ، ولكنك لا تعرف الاسم الدقيق ، فيمكنك استخدام الأمر:
find . -iname "*.conf"

5. البحث عن الملفات والدلائل على أساس الحجم
عند دمجها مع واصفات الحجم المناسبة ، يمكنك استخدام الأمر find مع علامة -size للعثور على الملفات والدلائل في Linux بناءً على حجمها المشغول في الذاكرة. بالإضافة إلى ذلك ، يمكن أيضًا إضافة واصفات أحجام مختلفة لتحديد حد حجم الملف للبحث.
الصيغة الأساسية للعثور على الملفات في Linux بناءً على الحجم هي:
find <location> -type <search_item_type> -size <symbol><file_size><size_descriptor>
الصيغة أعلاه هي نفسها السابقة ، باستثناء “-size <symbol><file_size><size_descriptor>
” جزء. فيما يلي شرح لهذا الجزء:
- بالنسبة للجزء
، يمكنك تحديد “+” أو “-” أو حتى تركه فارغًا. هنا ، تعني “+” البحث عن الملفات / الدلائل التي تتجاوز الحجم المحدد ، و “-” تحدد للعثور على الملفات / الدلائل التي تقل عن الحجم المحدد. إذا تم تركه فارغًا ، فسيبحث الأمر find عن الملفات التي تطابق الحجم تمامًا. - يحدد
حجم الملف / الدليل. <size_descriptor>
يشير إلى نطاق حجم الملف الذي تريد البحث عنه.
الأنواع المختلفة من واصفات الحجم التي يمكنك استخدامها هي:
واصف الحجم | وصف |
---|---|
c |
يحدد أمر البحث للبحث عن الحجم بالبايت |
k |
يحدد أمر البحث للبحث عن الحجم بالكيلو بايت |
M |
يحدد أمر البحث للبحث عن الحجم بالميغابايت |
G |
يحدد أمر البحث للبحث عن الحجم بالجيجابايت |
قد تبدو الصيغة أعلاه معقدة للغاية بالنسبة لبعض المستخدمين ، ولكن بعض الأمثلة ستجعل من السهل فهمها.
- إذا كنت تريد عرض أدلة تساوي 4 كيلو بايت في مجلد المستندات ، فاستخدم هذا الأمر:
find ~/Documents -type d -size 4k

- أو إذا كانت المساحة منخفضة وتحتاج إلى عرض الملفات التي تزيد عن 100 ميغابايت في دليل المستندات ، فاستخدم هذا الأمر:
find ~/Documents -type f -size +100M

- إذا كنت تريد عرض الملفات التي يقل حجمها عن 10 ميغابايت في دليل المستندات ، فاستخدم هذا الأمر:
find ~/Documents -type f -size -10M

- إذا كنت بحاجة إلى عرض الملفات الفارغة في دليل المستندات ، فاستخدم هذا الأمر:
find ~/Documents -type f -size 0

6. البحث عن الملفات والدلائل التي تطابق أذونات محددة
تعتبر الأذونات في Linux ذات أهمية قصوى في Linux لحماية كل من الملفات والأدلة من الوصول غير المقصود. لمعرفة المزيد ، راجع دليلنا الشامل حول أذونات Linux.
للعثور على الملفات والدلائل بناءً على مجموعة الأذونات ، استخدم بناء الجملة هذا:
find <location> -type <search_item_type> -perm <permission_set>
في الصيغة أعلاه ، يمكنك استخدام إما الوضع المطلق للعنونة أو الوضع النسبي لـ <permission_set>
.
لنفترض أنك بحاجة إلى العثور على الملفات ذات إذن القراءة فقط للجذر ، فاستخدم هذا الأمر:
find ~/Documents/test/ -type f -perm 400

أو إذا كنت ترغب في العثور على الملفات ذات أذونات القراءة والكتابة لجميع المستخدمين ، فاستخدم هذا الأمر:
find ~/Documents/test/ -type f -perm a=r+w

7. البحث عن الملفات والدلائل التي يملكها المستخدم
كما أوضحنا سابقًا ، يمكنك البحث عن الملفات بناءً على الأذونات المحددة للملف باستخدام الأمر find في Linux. الآن سوف نوضح لك كيفية عرض الملفات التي يملكها مستخدم معين. تظل البنية الأساسية في الغالب كما هي باستثناء علامة المستخدم الجديدة التي تحدد أمر البحث للبحث عن الملفات التي يمتلكها هذا المستخدم:
find <location> -type <search_item_type> -user <username>
على سبيل المثال ، إذا كنت تريد رؤية الملفات التي يمتلكها مستخدم “الاختبار” في الدليل الحالي ، فاستخدم هذا الأمر:
find . -type f -user test

8. باستخدام الأمر find مع علامة -exec
باستخدام علامة -exec ، يمكنك تنفيذ أوامر shell الفعلية باستخدام الأمر find وبالتالي تعزيز وظائفها عدة مرات. تقوم العلامة -exec بتنفيذ أوامر shell على كل نتيجة بحث يتم إرجاعها. الصيغة الأساسية لاستخدام الأمر find مع العلامة -exec هي:
find <location> <options> -exec <shell_command> {} ;
في الصيغة أعلاه ، يتم استخدام {} لإدخال نتائج البحث التي تم العثور عليها بواسطة الأمر find داخل أمر shell. مثال سيجعل الأمر أكثر وضوحا.
لنفترض أنك تريد نسخ ملف باسم test.txt داخل الدليل الحالي إلى / tmp / docs / ، استخدم هذا الأمر:
find . -iname renaming.sh -exec cp {} ./testing \;
في المثال أعلاه ، عندما “renaming.sh
“تم العثور عليه ، تم توصيله مباشرة بدلاً من”{}
“حيث يتم اتباع إجراء النسخ العادي. تشير الفاصلة المنقوطة الأخيرة (؛) إلى إنهاء الأمر.

دعونا الآن نرى كيف يتم التعامل مع ملفات متعددة بواسطة العلامة -exec. لنفترض أنك تريد نقل جميع ملفات .pdf في الدليل الحالي إلى دليل جديد باسم “ftesting” في الدليل الرئيسي ، يمكنك استخدام هذا الأمر:
find .-name "*.pdf" -exec mv {} ./testing + \;

إذا كنت تريد إعادة التسمية باستخدام الأمر mv ، فراجع مقالتنا حول كيفية إعادة تسمية ملف في Linux حيث ناقشنا أربع طرق مختلفة لإعادة تسمية الملفات.
9. البحث عن الملفات والدلائل وحذفها في Linux
قد تحتاج أحيانًا إلى حذف ملفات / أدلة معينة في Linux. كنت تعتقد أنه يجب كتابة برنامج نصي معقد من أجل ذلك. ومع ذلك ، باستخدام قوة الأمر -exec ، يمكنك بسهولة حذف الملفات أو الدلائل التي تمت تصفيتها بواسطة أوامر البحث بناءً على القواعد المحددة. الصيغة الأساسية لحذف الملفات باستخدام الأمر find هي:
find <location> <options> -type <search_item_type> -exec rm -vf {} ;
قد يجد بعض المستخدمين صعوبة في فهم الأمر أعلاه. لتبسيط الأمور ، يمكنك استخدام علامة -delete بدلاً من الجزء -exec بأكمله لحذف العناصر. صيغة حذف الملفات باستخدام علامة -delete مع الأمر find في Linux هي:
find <location> <options> -type <search_item_type> -delete
حذف الملف والدليل بالاسم الدقيق
يعمل حذف ملف / دليل بنفس طريقة استخدام الأمر find للبحث عنه. صيغة حذف ملف باستخدام البحث هي:
find <location> <options> -type <search_item_type> -name <file_to_delete> -delete
لنفترض أنك تريد حذف ملف “test.txt” في الدليل الحالي ، يمكنك استخدام هذا الأمر على النحو التالي:
find . -type f -name test.txt -delete

حذف الملفات ذات الاسم المتطابق جزئيًا
إذا قمت بحذف ملف وكل ما يمكنك تذكره هو جزء من الاسم ، فيمكنك استخدام أحرف البدل للعثور على جميع أنواع الأسماء المطابقة مع اسم الملف المحدد. صيغة حذف الملفات والمجلدات ذات الاسم الجزئي مع الأمر find في Linux هي:
find <location> <options> -type <search_item_type> -name <name_with_wildcard> -delete
على سبيل المثال ، لحذف جميع الملفات التي تبدأ بالاسم “test” ، استخدم هذا الأمر:
find . -type f -name "test*" -delete

حذف الملفات بنفس الامتداد
عندما تحتاج إلى حذف جميع الملفات التي لها نفس الامتداد في دليل ما ، كل ما عليك فعله هو إضافة علامة -delete في النهاية. صيغة حذف جميع الملفات ذات الامتدادات نفسها هي:
find <location> -type f -name "*.<extension>" -delete
على سبيل المثال ، إذا كنت تريد حذف جميع ملفات .pdf في الدليل الحالي ، فيمكنك استخدام هذا الأمر:
find . -type f -name "*.pdf" -delete
إذا كنت تريد معرفة المزيد من الطرق لحذف الملفات والأدلة في Linux ، فراجع المقالات حول كيفية حذف ملف في Linux وكيفية حذف دليل في Linux. نوصيك بتشغيل الأمر find دائمًا أولاً بدون علامة te delete. بمجرد أن تكون راضيًا عن النتائج ، يمكنك عندئذٍ تطبيق علامة -delete لحذف العناصر أخيرًا.
احذف الملفات والدلائل الفارغة باستخدام أمر البحث
يعد حذف الملفات والأدلة الفارغة أمرًا بسيطًا إلى حد ما. ما عليك سوى إضافة علامة -delete في نهاية الأمر للعثور على المجلدات والملفات الفارغة في Linux. صيغة حذف الملفات والمجلدات الفارغة هي:
find <location> -type <search_item_type> -size 0 -delete
