我正在編寫一個備份程序,我需要執行bash命令來刪除特定目錄中最舊的目錄。
我發現這個命令列印最舊的目錄:
find -type f -printf '%T+ %p\n' | sort | head -n 1
這個指令刪除一個目錄及其所有內容:
rm -rf [oldest directory name]
如何將這兩個資料夾結合起來以刪除最舊的資料夾?
答案1
這應該適用於任何路徑(感謝@StéphaneChazelas 的head
詭計)並且應該與 POSIX 相容(格式化以提高可讀性):
printf %q "$(
find . -type d -printf "%T+ %p\0" |
tr '\0\n' '\n\0' |
sort |
head -n 1 |
tr '\0\n' '\n\0' |
sed -e 's/^[^ ]\+ //')"
若要實際刪除目錄,請替換printf %q
為rm -rf --