كيفية حذف الملفات والدلائل في محطة لينكس؟ أمر RMDIR (RD) - حذف دليل نظام ملفات Windows، حذف مجلد في Linux من وحدة التحكم


يحذف الأمران rm وrmdir الملفات والأدلة الموجودة على Linux وmacOS وأنظمة التشغيل الأخرى المشابهة لـ Unix. وهي تشبه أوامر del وdeltree في Windows وDOS. هذه الأوامر قوية جدًا ولديها عدد قليل من الخيارات.

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

كيفية حذف الملفات باستخدام rm

أبسط حالة هي حذف ملف واحد في الدليل الحالي. اكتب الأمر rm، ثم مسافة، ثم اسم الملف الذي تريد حذفه.

جمهورية مقدونيا file_1.txt

إذا لم يكن الملف موجودًا في دليل العمل الحالي، فقم بتوفير المسار إلى موقع الملف.

Rm ./path/to/the/file/file_1.txt

يمكنك تمرير أكثر من اسم ملف إلى rm. يؤدي هذا إلى حذف كافة الملفات المحددة.

جمهورية مقدونيا file_2.txt file_3.txt

يمكن استخدام أحرف البدل لتحديد مجموعات من الملفات المراد حذفها. لافتة * يمثل شخصيات متعددة، والحرف ? يمثل حرف واحد. سيؤدي هذا الأمر إلى حذف كافة ملفات الصور png الموجودة في دليل العمل الحالي.

جمهورية مقدونيا * .png

سيقوم هذا الأمر بحذف كافة الملفات التي لها نفس امتداد الحرف. على سبيل المثال، سيؤدي هذا إلى حذف File.1 وFile.2، وليس File.12.

آر إم *.؟

إذا كان الملف محميًا ضد الكتابة، فستتم مطالبتك بحذف الملف. يجب عليك الإجابة ب ذأو نواضغط على "أدخل".

لتقليل مخاطر استخدام rm مع أحرف البدل، استخدم الخيار -أنا(تفاعلية). للقيام بذلك، يجب عليك تأكيد حذف كل ملف.

جمهورية مقدونيا -i * .dat

خيار -F(القوة) هي عكس التفاعلية. لا يطلب التأكيد حتى لو كانت الملفات محمية ضد الكتابة.

جمهورية مقدونيا -f اسم الملف

كيفية إزالة الدلائل باستخدام rm

لإزالة دليل فارغ، استخدم الخيار (الدليل). يمكنك استخدام أحرف البدل (* و؟) في أسماء الدليل تمامًا كما يمكنك في أسماء الملفات.

الدليل Rm-d

يؤدي توفير أكثر من اسم دليل إلى إزالة كافة الدلائل الفارغة المحددة.

Rm -d Directory1 Directory2 /path/to/directory3

لإزالة الدلائل غير الفارغة، استخدم الخيار (العودية). للتوضيح، يؤدي هذا إلى حذف الأدلة وجميع الملفات والأدلة الفرعية الموجودة بداخلها.

Rm -r الدليل 1 الدليل 2 الدليل 3

إذا كان الدليل أو الملف محميًا ضد الكتابة، فستتم مطالبتك بتأكيد الحذف. لإزالة الدلائل غير الفارغة ومنع هذه المطالبات، استخدم الخيارات معًا (العودي) و -F(قسري).

دليل Rm -rf

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

استخدم apt-get لتثبيت هذه الحزمة على نظامك إذا كنت تستخدم Ubuntu أو توزيعة أخرى تعتمد على Debian. في توزيعات Linux الأخرى، استخدم أداة إدارة الحزم الخاصة بتوزيع Linux الخاص بك.

Sudo apt-get install Tree

يؤدي تشغيل أمر الشجرة إلى إنتاج رسم تخطيطي سهل الفهم لبنية الدليل والملفات الموجودة ضمن الدليل الذي يتم تشغيله منه.

يمكنك أيضًا تحديد المسار إلى أمر الشجرة بحيث يقوم بتشغيل الشجرة من دليل آخر على نظام الملفات.

مسار الشجرة/إلى/الدليل

يحتوي الأمر rm أيضًا على خيارات --one-file-system و --no-preserve-root و --preserve-root، ولكن يوصى بها فقط للمستخدمين المتقدمين. إذا قمت بشيء خاطئ، فقد تقوم بحذف جميع ملفات النظام عن طريق الخطأ.

كيفية إزالة الدلائل باستخدام rmdir

هناك أمر آخر، rmdir، يمكنك استخدامه لإزالة الدلائل. الفرق بين rm و rmdir هو أن rmdir يمكنه حذف المجلدات الفارغة فقط. لن يحذف الملفات أبدًا.

أبسط حالة هي حذف دليل واحد فارغ. كما هو الحال مع rm، يمكنك تمرير أسماء أدلة متعددة إلى rmdir أو rmdir مسار الدليل.

قم بإزالة دليل واحد في الدليل الحالي عن طريق تمرير اسمه إلى rmdir:

دليل رمدير

قم بإزالة أدلة متعددة عن طريق تمرير قائمة الأسماء إلى rmdir:

دليل رمدير1 الدليل2 الدليل3

قم بإزالة دليل غير موجود في الدليل الحالي عن طريق تحديد المسار الكامل لهذا الدليل:

Rmdir /path/to/directory

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

عندما يصدر rmdir خطأ "الدليل ليس فارغًا"، فإنه يتوقف عن معالجة الدلائل التي تم تمريرها إليه في سطر الأوامر. إذا طلبت حذف أربعة أدلة وكان المجلد الأول يحتوي على ملفات، فسيعطيك rmdir رسالة خطأ ولن يفعل أي شيء آخر. يمكنك إجباره على تجاهل هذه الأخطاء باستخدام --ignore-fail-on-non-empty لمعالجة الدلائل الأخرى.

في المثال التالي، تم نقل مجلدين إلى rmdir، وهما العمل/التقارير والعمل/عروض الأسعار. يتم تضمين الخيار --ignore-fail-on-non-empty في الأمر. يحتوي مجلد العمل/التقارير على ملفات، لذا لا يمكن لـ rmdir حذفه. يؤدي الخيار --ignore-fail-on-non-empty إلى تجاهل rmdir للخطأ والانتقال إلى المجلد التالي الذي يتعين عليه معالجته، وهو العمل/علامات الاقتباس. هذا مجلد فارغ ويقوم rmdir بحذفه.

تم استخدام هذا الأمر.

Rmdir - تجاهل الفشل في العمل/التقارير/العمل/الاقتباسات غير الفارغة

يمكنك استخدام الخيار (الأصل) لإزالة دليل وإزالة الدلائل الأصلية الخاصة به أيضًا. تعمل هذه الخدعة لأن rmdir يبدأ من الدليل الهدف ثم يعود إلى الدليل الأصلي. يجب أن يكون هذا الدليل فارغًا الآن حتى يمكن إزالته بواسطة rmdir وتكرر العملية الخطوة السابقة على طول المسار الذي يوفره rmdir.

في المثال التالي، الأمر الذي تم تمريره إلى rmdir هو:

Rmdir -p العمل/الفواتير

يتم حذف الفواتير وأدلة العمل عند الطلب.

هل تستخدم Bash أو أي قذيفة أخرى؟ يوفر Linux أوامر مرنة وقوية لحذف الدلائل والملفات مباشرة من سطر الأوامر الطرفي. يفضل بعض الأشخاص أن يكون لديهم سير عمل يدور حول محطة طرفية. وقد لا يكون للآخرين خيار في هذا الشأن. يمكن تشغيلها على خوادم بدون تثبيت واجهة المستخدم الرسومية، أو في جلسة بعيدة على نظام مستقل مثل Raspberry Pi. هذه الفرق مثالية لهذه المجموعة من الناس.

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

يعد سطر الأوامر أداة قوية لأتمتة وتبسيط العديد من المهام التي تنشأ عند إدارة جهاز كمبيوتر يعمل بنظام التشغيل Windows. في هذه المقالة سنلقي نظرة على أوامر DEL وERASE وRD وRMDIR. بمساعدتهم، يمكنك حذف الملفات والمجلدات مباشرة من سطر الأوامر.

إذا كنت بحاجة إلى حذف ملف عبر، فأنت بحاجة إلى استخدام أمر DEL أو ERASE. هذه الأوامر مترادفة وتعمل بنفس الطريقة. يمكنك الحصول على معلومات مفصلة حول هذه الأوامر إذا قمت بإدخالها في سطر الأوامر باستخدام "/؟" " على سبيل المثال، يمكنك كتابة "del/؟ " وسيتم عرض جميع المعلومات الأساسية حول أمر del في وحدة التحكم.

تم تصميم أمر DEL (أو ERASE) لحذف ملف واحد أو أكثر ويمكنه قبول المعلمات التالية:

  • /P - الحذف مع طلب تأكيد لكل ملف؛
  • /F - حذف الملفات ذات السمة "للقراءة فقط"؛
  • /S - يحذف الملف المحدد من كافة المجلدات الفرعية؛
  • /س - الحذف دون طلب التأكيد؛
  • / أ - حذف الملفات حسب سماتها؛

    • د - النظام؛
    • ح - مخفي؛
    • ص - للقراءة فقط؛
    • أ- للأرشفة
    • يمكنك أيضًا استخدام علامة الطرح "-" أمام السمات، والتي لها معنى "NOT". على سبيل المثال، يعني "-S" ملفًا غير خاص بالنظام.

عادةً، لاستخدام أمر DEL، عليك أولاً الانتقال إلى المجلد الذي يوجد به الملف المراد حذفه، ثم تشغيل الأمر. لتغيير محرك الأقراص، ما عليك سوى إدخال حرف محرك الأقراص والنقطتين. وللتنقل عبر المجلدات تحتاج إلى استخدام الأمر "CD".

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

وأيضًا، إذا لزم الأمر، يمكنك حذف الملفات دون التنقل عبر المجلدات. في هذه الحالة، تحتاج إلى تحديد المسار الكامل للمستند.

إذا كانت هناك حاجة لتنفيذ طلب لتأكيد حذف كل ملف من ملفاتهم، فيجب إضافة المعلمة "/p" إلى أمر DEL. في هذه الحالة، سيطالبك سطر الأوامر بحذف الملف وسيحتاج المستخدم إلى إدخال الحرف "Y" للتأكيد.

تجدر الإشارة إلى أنه عند استخدام المعلمة "/a"، يجب إدخال الأحرف المسؤولة عن السمات مفصولة بنقطتين. على سبيل المثال، لحذف جميع الملفات ذات السمة "للقراءة فقط" والملحق "txt"، تحتاج إلى إدخال الأمر " ديل /F /A:R *.txt ".

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

  • del D:\ - يدمر كافة الملفات الموجودة في جذر محرك الأقراص D؛
  • del D:\*.txt - تدمير كافة الملفات ذات الامتداد txt في جذر محرك الأقراص D؛
  • del D:\doc - تدمير كافة الملفات الموجودة في المجلد d:\doc (سيتم تخطي المستندات ذات السمات)؛
  • del /A:r d:\doc\*.txt - تدمير كافة الملفات ذات السمة "للقراءة فقط" والامتداد "txt" في المجلد d:\doc؛

حذف المجلدات عبر سطر الأوامر

إذا كنت بحاجة إلى حذف مجلد من خلال سطر أوامر Windows، فلن تساعدك الأوامر المذكورة أعلاه. لإزالة المجلدات، يوجد أمر منفصل RD أو RMDIR (اختصار لإزالة الدليل).

يعد الأمران RD وRMDIR مترادفين ويهدفان إلى حذف المجلدات. يمكنهم قبول المعلمات التالية:

  • /S - يحذف شجرة الدليل بأكملها، عند استخدام هذه المعلمة، لن يتم حذف المجلد نفسه فحسب، بل سيتم حذف جميع محتوياته أيضًا؛
  • /س - حذف شجرة المجلدات دون طلب التأكيد؛

على سبيل المثال، لحذف مجلد، ما عليك سوى إدخال الأمر RD واسم المجلد.

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

لحل هذه المشكلة، تحتاج إلى إضافة المعلمة "/ s" إلى أمر RD. في هذه الحالة تتم عملية الحذف دون مشاكل، ولكن يظهر طلب لتأكيد الحذف.

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

أيضا، يمكن لأمر RD قبول عدة مجلدات في وقت واحد، للقيام بذلك، تحتاج فقط إلى فصلها بمسافة. على سبيل المثال، إذا قمت بتنفيذ "rd 111 222"، فيمكنك حذف المجلدات المسماة "111" و"222" في وقت واحد.

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

من خلال الجمع بين أوامر DEL وRD، يمكنك إنشاء برامج نصية قوية لتنظيف وحذف المجلدات في نظام التشغيل Windows.

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

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

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


إذا لم تتمكن من تحديد الموقع، فعند الحذف سيتعين عليك إدخال المسار الكامل بنفسك، لذلك سيتعين عليك معرفته.

الطريقة الأولى: أوامر المحطة الطرفية القياسية

يحتوي غلاف الأوامر لأي توزيع Linux على مجموعة من الأدوات المساعدة والأدوات الأساسية التي تتيح لك تنفيذ مجموعة واسعة من الإجراءات باستخدام إعدادات النظام والملفات، بما في ذلك حذف الدلائل. هناك العديد من هذه الأدوات المساعدة وسيكون كل منها مفيدًا للغاية في موقف معين.

أمر رمدير

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

لا يوجد ما يمنعك من تحديد مسار الدليل الكامل إذا لم تتمكن من الانتقال إلى الموقع الذي تريده أو لا تحتاج إليه. ثم يأخذ السطر على سبيل المثال النموذج التالي: rmdir /home/user/folder/folder1 حيث مستخدم- اسم المستخدم، مجلدهو الدليل الأصلي، و المجلد1- المجلد المراد حذفه. يرجى ملاحظة أنه يجب أن يكون هناك شرطة مائلة قبل المنزل، ولكن في نهاية المسار يجب ألا تكون هناك شرطة مائلة.

الأمر آر إم

الأداة السابقة هي أحد مكونات الأداة المساعدة rm. في البداية، كان المقصود منه حذف الملفات، ولكن إذا أعطيته الوسيطة المناسبة، فسيقوم أيضًا بمسح المجلد. هذا الخيار مناسب بالفعل للأدلة غير الفارغة؛ في هذه الحالة، تحتاج إلى إدخال المجلد rm -R (أو المسار الكامل للدليل) في وحدة التحكم. لاحظ الحجة - يبدأ عملية حذف متكررة، أي أنه يؤثر على محتويات المجلد بالكامل وعلى نفسه. من الضروري أن تكون حساسًا لحالة الأحرف عند الدخول لأنه - هذا خيار مختلف تمامًا.

إذا كنت تريد عرض قائمة بجميع الملفات والمجلدات المحذوفة عند استخدام rm، فستحتاج إلى تعديل السطر قليلاً. أدخل في "صالة" rm -Rfv ثم قم بتنشيط الأمر.

بمجرد اكتمال الحذف، سيتم عرض معلومات حول كافة الدلائل والكائنات الفردية التي كانت موجودة مسبقًا في الموقع المحدد.

العثور على الأمر

يحتوي موقعنا الإلكتروني بالفعل على مواد تحتوي على أمثلة لاستخدام البحث في أنظمة التشغيل المطورة على Linux kernel. وبطبيعة الحال، يتم تقديم المعلومات الأساسية والأكثر فائدة فقط هناك. يمكنك التعرف عليها من خلال النقر على الرابط التالي، والآن نقترح معرفة كيفية عمل هذه الأداة عندما تحتاج إلى حذف الدلائل.

  1. وكما هو معروف، يجديعمل على البحث عن الكائنات داخل النظام. بفضل استخدام الخيارات الإضافية، يمكنك العثور على أدلة باسم محدد وحذفها على الفور. للقيام بذلك، أدخل العثور على وحدة التحكم. - نوع d -name "folder" -exec rm -rf () \;، حيث المجلد هو اسم الدليل. تأكد من كتابة علامات الاقتباس المزدوجة عند القيام بذلك.
  2. يعرض سطر منفصل أحيانًا معلومات تفيد بعدم وجود مثل هذا الملف أو الدليل، ولكن هذا لا يعني أنه لم يتم العثور عليه. فقط يجدعملت مرة أخرى بعد حذف الدليل من النظام.
  3. Find ~/ -empty -type d -delete يسمح لك بحذف جميع المجلدات الفارغة على النظام. بعضها لا يمكن الوصول إليه إلا من قبل المستخدم المتميز، وذلك من قبل يجديجب إضافة سودو.
  4. ستظهر على الشاشة بيانات حول جميع الكائنات التي تم العثور عليها ونجاح العملية.
  5. يمكنك أيضًا تحديد دليل محدد فقط للأداة للبحث فيه وتنظيفه. ثم سيبدو السطر، على سبيل المثال، كما يلي: find /home/user/Folder/ -empty -type d -delete .

يكمل هذا التفاعل مع أدوات وحدة التحكم القياسية في Linux. وكما ترون، هناك عدد كبير منها وكل منها ينطبق في حالات معينة. إذا كنت ترغب في التعرف على الفرق الشهيرة الأخرى، فاقرأ المواد المنفصلة الخاصة بنا على الرابط أدناه.

يوم جيد أيها القراء الأعزاء. أود اليوم أن أتحدث عن حذف دليل في PHP. يبدو أن العملية ليست معقدة، ولكن هناك بعض الفروق الدقيقة. دعونا ننظر في طرق للقيام بذلك.

PHP لديه وظيفة لهذا رمدير(). يأخذ كوسيطة المسار إلى الدليل الذي تريد حذفه. لكن، يجب أن يكون الدليل فارغًا- هذا هو الشرط الرئيسي (باستثناء حقيقة أن المستخدم الذي يعمل خادم الويب منه يجب أن يتمتع بحقوق الكتابة للدليل). إذا تم وضع الملفات في الدليل، فسوف نتلقى خطأ عند استدعاء الوظيفة. وبناء على ذلك، نتوصل إلى استنتاج مفاده أن الدليل قبل استخدام الوظيفة رمدير()يجب تنظيفها أولا.

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

مثال على التنفيذ:

الدالة العوديةRemoveDir($dir) ( $includes = glob($dir."/*"); foreach ($includes as $include) ( if(is_dir($include)) ( recursiveRemoveDir($include); ) else ( unlink( $include); ) ) rmdir($dir); ) // إزالة دليل tmp من الدليل الحالي recursiveRemoveDir("tmp");
ما هي المشاكل التي يواجهها هذا الرمز؟

في الحالات البسيطة، سيتم حذف الدليل الذي يحتوي على كافة المرفقات. لكن لنفترض أنه يوجد في دليلنا ملف مخفي يبدأ بنقطة، على سبيل المثال، .htaccess. وظيفة الكرة الأرضية ()هو استبدال UNIX الشامل الذي لا يتضمن الملفات المخفية (DOTFILES) افتراضيًا. على سبيل المثال، إذا ذهبنا إلى محطة nix واستخدمنا bash، فسنواجه نفس المشكلة (نحن نتحدث عن الملفات المخفية داخل الكرات). يوجد أمر في bash لحل هذه المشكلة: تسوق -s dotglob- يسمح باستبدال الملفات المخفية. في PHP، يمكن حل هذه المشكلة عن طريق إضافة معلمة إضافية GLOB_BRACEل الكرة الأرضية ()وتوسيع النمط من المعلمة الأولى للوظيفة.

$includes = glob("tmp/(,.)*", GLOB_BRACE);
وهنا توجد أيضًا مشكلة - سنواجه حلقة لا نهائية، نظرًا لأن المصفوفة ستتضمن قيمًا. و.. - وهو الدليل الحالي والأصلي على مستوى النظام. سينتهي بنا الأمر بحلقة لا نهائية (وعدم حذف جميع الدلائل الرئيسية) لأن. كجزء من الفرز الافتراضي، ستأتي المصفوفة التي تم إنشاؤها أولاً.. - أي أننا سنصل إلى نفس الدليل في كل مرة. لحل المشكلة، سنقوم بتكوين مصفوفة من أدلة النظام هذه، وفي حلقة، نزيل مؤشراتها من المصفوفة الرئيسية. هناك أيضًا مشكلة الروابط الرمزية. لنفترض أن الدليل الذي يتم حذفه يحتوي على رابط إلى دليل آخر، ونحن لسنا مهتمين على الإطلاق بحذف محتوياته. لحل المشكلة، قبل إنشاء التكرار، من الضروري التحقق من أن الكيان ليس مرجعًا.

ونتيجة لذلك تأخذ الدالة الشكل التالي:

الدالة العوديةRemoveDir($dir) ( $includes = glob($dir."/(,.)*", GLOB_BRACE); $systemDots = preg_grep("/\.+$/", $includes); foreach ($systemDots as $index => $dot) ( unset($includes[$index]); ) foreach ($includes as $include) ( if(is_dir($include) && !is_link($include)) ( recursiveRemoveDir($include); ) else ( unlink($include); ) ) rmdir($dir); ) // قم بإزالة دليل tmp من الدليل الحالي recursiveRemoveDir("tmp");
الكود يعمل، ولكن في الواقع كان من الممكن تبسيطه. يوجد في PHP فئة FilesystemIterator، والتي تحتوي افتراضيًا على الإعدادات التي نحتاجها بالفعل. يتم تمرير المسار إلى الدليل الذي نحتاج إلى قائمته إلى المُنشئ. نحن بحاجة فقط إلى إنشاء كائن.

الدالة العوديةRemoveDir($dir) ( $includes = new FilesystemIterator($dir); foreach ($includes as $include) ( if(is_dir($include) && !is_link($include)) ( recursiveRemoveDir($include); ) آخر ( unlink($include); ) ) rmdir($dir); ) // قم بإزالة دليل tmp من الدليل الحالي recursiveRemoveDir("tmp");
في الختام، أود أن أشير إلى طريقة سريعة أخرى. صحة استخدامه أمر مشكوك فيه للغاية - أرسل الأمر للتنفيذ إلى SHELL.

System("rm -rf tmp");
أود أن ألفت انتباهكم إلى الاستهلاك العالي للذاكرة وإلى حقيقة أن المسؤولين غالبًا ما يحظرون استخدام مثل هذه الوظائف على الخادم لأسباب أمنية.

العلامات: PHP، RMdir، الكرة الأرضية، العودية

فريق rmdirسيساعدنا على حذف دليل فارغ، أي دليل بدون ملفات ومجلدات. بناء جملة الأمر بسيط للغاية:

رمدير ديرنام

إذا لم يكن الدليل فارغًا، فسترى رسالة الخطأ التالية.

اختبار rmdir $ rmdir: فشل في إزالة "اختبار": الدليل ليس فارغًا

2. كيفية حذف الدلائل المتداخلة في لينكس؟

باستخدام الخيار يمكنك حذف دليل به دليل فرعي متداخل بداخله.

$ rmdir -p dir1/dir2/dir3

فريق rmdir -p dir1/dir2/dir3هذا هو ما يعادل الأمر

$ rmdir dir1/dir2/dir3 dir1/dir2 dir1

3. حذف دليل المحتوى

إذا كنت بحاجة إلى حذف دليل يحتوي على محتويات، فيمكنك استخدام الأمر جمهورية مقدونيا:

$ rm -rf DIRNAME

سيؤدي هذا الأمر إلى حذف الدليل، بما في ذلك جميع الملفات والأدلة الفرعية التي يحتوي عليها. استخدم هذا الأمر بحذر، لأن استعادة الملفات المحذوفة لن يكون إجراءً سهلاً.

4. الإزالة التفاعلية

لتجنب حذف الملفات الضرورية عن طريق الخطأ، أوصي باستخدام الخيار -i لحذف الملفات والمجلدات بشكل تفاعلي (خاصة مع حقوق الجذر).

حذف الدليل العودي والتفاعلي.

# rm -ir DIRNAME

حذف الملف التفاعلي.

# rm -i اسم الملف

5. أسماء مستعارة مفيدة للأوامر rm وrmdir

يمكنك استخدام الحذف التفاعلي باعتباره السلوك الافتراضي للأمر rm.

الاسم المستعار للتنفيذ المستمر لـ rm بشكل تفاعلي

# الاسم المستعار rm = "rm -i"

عند استخدام الأمر جمهورية مقدونياسيتم تنفيذ الأمر بالفعل جمهورية مقدونيا -أنا. ولكن عليك الانتباه إلى فارق بسيط واحد. لا تستخدم الخيار -i في المستقبل لأنك لن تحصل على التأثير المطلوب. لنلقي نظرة على مثال:

في الأمر التالي، استخدام -i لن يعطيك التأثير المتوقع..

$ rm -irf DIRNAME

في هذه الحالة، عند استخدام اسم مستعار، يجب تشغيل الأمر أعلاه على النحو التالي:

$ rm -rf DIRNAME

جميع الأوامر أدناه متكافئة وتؤدي نفس الوظيفة.

  • جمهورية مقدونيا الاب
  • جمهورية مقدونيا -RF
  • جمهورية مقدونيا -ص -و
  • جمهورية مقدونيا -و -ر

إذا كنت بحاجة إلى تقييم متخصص لمبنى ما، فإنني أوصي بطلب فحص المباني الجاهزة من قبل متخصصين من مركز الأبحاث والإنتاج تكنوبلاست