我想查找最旧的目录(在目录内),然后将其删除。我正在使用以下内容:
rm -R $(ls -1t | tail -1)
ls -1t | tail -1
确实给了我最旧的目录,问题是它没有删除目录,而且它还列出了文件。
我该如何解决?
我想查找最旧的目录(在目录内),然后将其删除。我正在使用以下内容:
rm -R $(ls -1t | tail -1)
ls -1t | 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 -lt | grep '^d' | tail -1 | tr " " "\n" | tail -1)
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 之前删除回声