Hostwinds دروس
نتائج البحث عن:
جدول المحتويات
العلامات: Cloud Servers, Dedicated Server
في هذا البرنامج التعليمي ، سنذهب إلى عدد من الطرق لإيجاد الملفات والأدلة (أي المجلدات) في Ubuntu 20.04 LTS ، مثل العثور على جميع الملفات مع أ .قديم تمديد أو العثور على جميع الملفات والأدلة أكبر من 2 غيغابايت.سنذهب أيضًا إلى كيفية تشغيل أمر واحد أو أكثر على كل ملف موجود.
لاحظ أن أحد الأوامر التي سنستخدمها حدد، الذي لا يأتي أصلاً مع أوبونتو.ال حدد غالبًا ما يكون الأمر أسرع من تجد لأنه يحافظ على قاعدة بيانات لجميع الملفات التي يتم تحديثها كل 24 ساعة.ال حدد يمكن تثبيت الأمر على النحو التالي:
sudo apt install mlocate
نظرًا لأن كل شيء في أنظمة التشغيل التي تشبه Unix ، بما في ذلك Ubuntu ، يعتبر ملفًا ، فإن مصطلح "ملف" سيشير أيضًا إلى "دليل" ما لم يتم استدعاؤه على خلاف ذلك.بالإضافة إلى ذلك ، تعتمد أمثلة بيئة سطح المكتب على جنوم.لمعرفة كيفية الوصول إلى جهاز كمبيوتر Ubuntu عن بُعد باستخدام Gnome ، انظر باستخدام سطح مكتب Windows البعيد مع Ubuntu 20.04 TLS.
مع ذلك ، دعنا نبدأ.
لسرد جميع الملفات من الدليل الحالي لأسفل ، يمكن استخدام الأوامر التالية:
غير المزين تجد أوامر إدراج جميع الملفات بشكل متكرر من الدليل الحالي:
find
ال حدد الأمر مشابه لـ تجد ولكن يتطلب نمطًا (شخصية البدل في هذه الحالة):
locate *
سرعة حدد يأتي بسعر.قد لا تنعكس الملفات المعدلة مؤخرًا في قاعدة البيانات.لحل هذه المشكلة ، يمكنك تحديث قاعدة البيانات مع Sudo updatedB (والتي قد تستغرق بعض الوقت) أو تستخدم -ه الخيار الذي يسرد الملفات الموجودة فقط في وقت حدد يتم تشغيل الأمر (يعادل بشكل أساسي تجد):
locate -e *
باستخدام العودية -ر الخيار يسمح للمعايير ls أمر لإنتاج نتائج مماثلة:
ls -Rlha
يمكنك إنتاج نتائج مماثلة باستخدام بيئة سطح المكتب جنوم:
في الأمثلة التالية ، سنبحث عن جميع الملفات مع .قديم امتداد.
لأننا نبحث عن جميع الملفات ، نستخدم سودو أمر لتجنب أخطاء الإذن وبدء البحث من الدليل الجذر (/):
sudo find / -iname *.old
نلاحظ أن -أنا اسم الخيار يتجاهل الحالة بينما -اسم لا.
في ما يلي ، -أنا الخيار يتجاهل الحالة:
sudo locate -i *.old
ومن المثير للاهتمام ، حتى مع -ه الخيار ، حدد لا يجد الأمر /run/blkid/blkid/tab.old ملف (بينما تجد يفعل).
بدون شخصية Wildcard (*) ، يوفر تطبيق ملفات سطح المكتب Gnome أساسًا نفس المعلومات مثل تجد يأمر:
دعنا نقول أننا نود أن نجد جميع الملفات أكبر من 50 MIB.لهذه المهمة ، يمكننا إضافة دو أمر إلى قائمة المشتبه بهم المحتملين:
ال دو تم تصميم الأمر خصيصًا لهذه المهمة:
sudo du / -ha --threshold=50M
ال -ه يوفر الخيار أحجام الملفات القياسية (البشرية) و -أ يتضمن الخيار الملفات وكذلك الدلائل:
لقمع رسائل الخطأ (الأربعة) ، يمكنك استخدام 2>&- جدال.يمكنك أيضًا الفرز حسب حجم الملف:
sudo du / -ha --threshold=50M 2>&- | sort -h
يوضح الصف الأخير أن القرص يحتوي على 2.8 GIB من البيانات في المجموع.
فيما يلي يجد جميع الملفات (باستثناء الدلائل) أكبر من 50 MIB:
sudo find / -size +50M
لعرض حجم كل ملف بالبايت ، يمكنك استخدام -ls الخيار (و 2>&- لإزالة رسائل الخطأ):
sudo find / -size +50M -ls 2>&-
يوفر العمود السابع حجم كل ملف ، بالبايت.لعرض مسار الملف فقط ، الكتابة والحجم ، يمكنك استخدام -بناء الخيار ، كما هو موضح:
sudo find / -size +50M -printf "%p %y %s bytes\n" 2>&- | column -t
ال ٪ ص يعيد اسم الملف ، ٪ ذ نوع الملف ، ٪س الحجم في البايتات ، و \ن يولد حرف سطر جديد (للحصول على التفاصيل ، تنفيذ يجد الرجل).
ال العمود -t يقوم الأمر بإنشاء أعمدة بناءً على أحرف المسافة البيضاء.لاحظ أن البايتات 140737477885952 أقل بقليل من 128 PIB ، وهو أمر غير صحيح بشكل واضح.يتبع تسليم أكثر دقة:
sudo find / -size +50M -printf "%p %y %k KiB\n" 2>&- | column -t
في ما سبق، ٪ك يوفر حجم الملف في KIB (على عكس ٪س بايت).
بسبب ال حدد لا تحتوي قاعدة بيانات الأوامر على معلومات حجم الملف ، لا يمكنك سرد الملفات أكبر من 50 MIB فقط مع حدد.
يوفر تطبيق ملفات سطح المكتب في Gnome نموذجي واجهة المستخدم الرسومية النتائج:
كما يتضح أعلاه ، فإن الفرز حسب عمود الحجم ليس مفيدًا تمامًا فيما يتعلق بإيجاد جميع الملفات التي يزيد حجمها عن 50 MIB.ال دو أو تجد الأوامر أكثر ملاءمة لمثل هذه المهمة.
يوجد عدد من الأوامر المذكورة أعلاه خصيصًا لإيجاد ملفات فارغة.سنقوم بفحص هذه المقبل.
بالنسبة إلى تجد الأمر ، هذه المهمة واضحة:
sudo find /tmp -empty -type f,d
يجد هذا الأمر جميع الملفات والأدلة الفارغة (أي ، -type f ، d) في حدود /TMP المجلد ، كما هو موضح:
ولكن أيها؟على النحو الوارد أعلاه ، يمكننا استخدام -بناء و عمودي كالآتي:
sudo find /tmp -empty -type f,d -printf "%p %y %s bytes\n" | column -t
لاحظ أن كل دليل فارغ يتطلب وجود 4096 بايت (4 KIB) في نظام ملفات Ubuntu.إليك مثال على دليل فارغ واحد وملف فارغ واحد:
مرة أخرى ، لأن حدد لا تحتوي قاعدة البيانات على معلومات حجم الملف ، ولا توجد طريقة للعثور مباشرة على الملفات/الدلائل الفارغة باستخدام فقط حدد أمر.
يوفر تطبيق ملفات سطح المكتب من Gnome نتائج غير مفيدة نسبيًا:
يجب على المرء القيام بالكثير من النقر لتحديد جميع الملفات الفارغة باستخدام بيئة سطح المكتب جنوم.
الآن بعد أن عرفنا كيفية العثور على الملفات ، قد نود أن ننفذ إجراءات عليها ؛مثل حذف الجميع *.قديم الملفات.
ال تجد القيادة -exec يقوم الخيار بتنفيذ الأمر المقدم مرة واحدة لكل ملف متطابق.فمثلا:
sudo find / -iname "*.old" -exec echo {} \;
باختصار ، هذا ينفذ صدى صوت أمر على كل .قديم تم العثور على ملف.هنا ، و {} بناء الجملة يمثل كل ملف مطابقة.وهكذا ، إذا vmlinux.old هو ملف مطابق ، ثم الأمر Echo vmlinux.old يتم تنفيذ.يتم استخدام Semicolon للإشارة إلى نهاية سلسلة الأوامر بعد -exec اختيار.لأن Semicolon له معنى خاص ، يجب أن يهرب من شخصيات الذروة الخلفية (\)، كالآتي:
لحذف الجميع *.قديم ملفات من /الصفحة الرئيسية/كارليتو دليل (أو ~ الدليل) ، يمكنك تشغيل الأمر التالي:
sudo find . -iname "*.old" -exec rm -f {} \;
يمكننا أن نرى أن جميع الملفات في ~ تمت إزالة الدليل:
ال حدد الأمر ليس لديه -exec اختيار.ومع ذلك ، يمكننا محاكاة هذه الوظيفة باستخدام XARGS يأمر:
sudo locate -i "*.old" | xargs -0 echo
ال -0 الخيار يسمح XARGS للتعامل بشكل صحيح مع أحرف اسم الملف غير النموذجي.
لإزالة كل شيء *.قديم ملفات من /الصفحة الرئيسية/كارليتو الدليل ، يمكنك تشغيل:
sudo locate -i "/home/karlito/*.old" | xargs rm
وبالمثل ، لإزالة الجميع .قديم الملفات المدرجة في حدد قاعدة بيانات الأوامر (بشكل عام كل شيء *.قديم ملفات على القرص) ، يمكنك تشغيل:
sudo locate -i "*.old" | xargs rm
لتنفيذ نفس الإجراء باستخدام تطبيق الملفات ، ابحث أولاً عن جميع الملفات باستخدام A.قديم امتداد:
بعد ذلك ، حدد جميع الملفات المطابقة بالضغط على Ctrl + A. ثم ، اضغط على مفتاح Delete وحدد حذف زر:
يمكننا تأكيد حذف موجه الأوامر على النحو التالي:
بسبب ال XARGS الأمر سريع ومرن ، ويمكن استخدامه مع العديد من الأوامر الأخرى ، فمن المنطقي عمومًا استخدامه لمعظم السيناريوهات.على سبيل المثال ، النسخ التالية جميع الملفات التي تحتوي على "نسخة احتياطية" في دليل يسمى "النسخ الاحتياطية" في المجلد الرئيسي للمستخدم:
sudo find / -type f -iname "*backup*" -print0 | xargs -0 -I {} sh -c 'stat -c "%n %s bytes" {}; cp {} ~/backups'
يتبع شرح مفصل لكل أمر وخيار:
تجميع كل هذا معا النتائج في الإخراج مما يلي:
في ما سبق ، يمكننا رؤية جميع الملفات التي تم نسخها نظريًا ~/النسخ الاحتياطية.إنه نظري من حيث أنه لم يتم نسخ جميع الملفات بالفعل:
هذه نقطة مهمة - لم تكن هناك مشاكل فيما يتعلق بالعرض Stat المعلومات ذات الصلة ولكن كانت هناك مشاكل ل CP القيادة (التي لم يتم الإبلاغ عنها).
بعد ذلك ، سنبحث في محتويات ملفات مطابقة للعثور على كلمة رئيسية واحدة أو أكثر.للبدء ، سنقوم بفحص كل شيء *.سجل ملفات لحوادث تحذير.للقيام بذلك ، نستخدم في كل مكان جريب يأمر:
sudo find / -iname '*.log' -type f -print0 | xargs -0 grep warning
تشغيل الأوامر قبل الأنبوب ( | ) يقوم المشغل بإرجاع القائمة المتوقعة لـ *.سجل الملفات.ومع ذلك ، فإن تشغيل إرجاع سطر الأوامر بأكمله لكل إذن تم رفض أخطاء:
هذا لأن ال جريب الأمر يتطلب أيضا سودو ارتفاع.وبالتالي ، فإن سطر الأوامر التالي ينتج النتائج المطلوبة (كلاهما -أنا اسم و -أنا تجاهل الحالة):
sudo find / -iname '*.log' -type f -print0 | xargs -0 sudo -i grep warning
للعثور على كل شيء *.سجل الملفات التي تحتوي تحذير, حرجو/أو خطأ، يمكننا استخدام المنطق أو ( | ) المشغل ، الذي يجب الهروب منه حتى لا يتم الخلط بينه وبين مشغل الأنابيب القياسية:
sudo find / -iname '*.log' -type f -print0 | xargs -0 sudo grep -l -i 'warning\|critical\|error'
خيار "L" الصغير -L يعرض قائمة الملفات المطابقة وليس المحتوى المرتبط به:
مقارنة هذا البرنامج التعليمي ومقارنه طرق متعددة للعثور على الملفات في Ubuntu 22.04 LTS.كما قدمت تقنيات لتنفيذ الأوامر على الملفات التي تم العثور عليها.توفر أنظمة التشغيل التي تشبه UNIX ، بما في ذلك Ubuntu ، بيئة سطر أوامر غنية للغاية لمساعدتك في إدارة الكمبيوتر/الخادم Ubuntu.
كتب بواسطة Karlito Bonnevie / يونيو 20, 2022