برمجة نصية: حذف أقدم دليل
-
26-09-2019 - |
سؤال
أريد أن أبحث عن أقدم دليل (داخل دليل) ، وحذفه. أنا أستخدم ما يلي:
rm -R $(ls -1t | tail -1)
ls -1t | tail -1
في الواقع يعطيني أقدم دليل ، المشكلة هي أنه لا يحذف الدليل ، وأنه يسرد أيضًا الملفات.
كيف يمكنني إصلاح ذلك من فضلك؟
المحلول
هذا ليس جميلًا ولكنه يعمل:
rm -R $(ls -lt | grep '^d' | tail -1 | tr " " "\n" | tail -1)
نصائح أخرى
rm -R "$(find . -maxdepth 1 -type d -printf '%T@\t%p\n' | sort -r | tail -n 1 | sed 's/[0-9]*\.[0-9]*\t//')"
يعمل هذا أيضًا مع الدليل الذي يحتوي اسمه على مسافات أو علامات تبويب أو يبدأ بـ "-".
rm -R $(ls -tl | grep '^d' | tail -1 | cut -d' ' -f8)
find directory_name -type d -printf "%TY%Tm%Td%TH%TM%TS %p\n" | sort -nr | tail -1 | cut -d" " -f2 | xargs -n1 echo rm -Rf
يجب عليك إزالة الصدى قبل RM إذا كان ينتج النتائج الصحيحة
لا تنتمي إلى StackOverflow