我正在编写一个备份程序,我需要执行一个 bash 命令来删除特定目录中最旧的目录。
我发现这个命令打印最旧的目录:
find -type f -printf '%T+ %p\n' | sort | head -n 1
此命令用于删除目录及其所有内容:
rm -rf [oldest directory name]
我该如何结合这两者来删除最旧的文件夹?
答案1
这应该适用于任何路径(感谢@StéphaneChazelashead
诡计) 并且应该与 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 --