如何删除目录中最旧的目录?

如何删除目录中最旧的目录?

我正在编写一个备份程序,我需要执行一个 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 %qrm -rf --

相关内容