Bash脚本:删除最旧的目录

Jar*_*ary 6 directory bash file-io delete-directory

我想查找最旧的目录(在目录中),并删除它.我使用以下内容:

rm -R $(ls -1t | tail -1)
Run Code Online (Sandbox Code Playgroud)

ls -1t | tail -1 确实给了我最老的目录,问题是它没有删除目录,而且它也列出了文件.

我怎么能解决这个问题?

Giu*_*one 5

rm -R "$(find . -maxdepth 1 -type d -printf '%T@\t%p\n' | sort -r | tail -n 1 | sed 's/[0-9]*\.[0-9]*\t//')"
Run Code Online (Sandbox Code Playgroud)

这也适用于名称包含空格,制表符或以" - "开头的目录.


cod*_*ict 3

这并不漂亮,但它有效:

rm -R $(ls -lt | grep '^d' | tail -1  | tr " " "\n" | tail -1)
Run Code Online (Sandbox Code Playgroud)