我如何删除一个带有 bash 的旧文件夹?

How could I remove one older folder with bash?

我有以下文件夹:

1435773881 Jul  1 21:04
1435774663 Jul  2 21:17
1435774856 Jul  3 21:20
1435775432 Jul  4 21:56

我需要使用 bash 脚本删除旧文件夹文件夹(在上述情况下为 1435773881)。

我应该使用什么命令?

你可以做到

ls -lt | tail -1 | awk '{print $NF}' | xargs rm -rf
  • ls -lt | tail -1 显示目录按日期排序后的最后一行
  • awk '{print $NF}'"prints"最后一列(目录名)
  • xargs rm -rf 删除该目录

假设您只想删除当前文件夹中最旧的文件:

rm -rf "$(ls -t | tail -1)";

并且由于您特别要求提供绝对路径的方法:

rm -rf "/$(ls -t "" | tail -1)";

在函数中包含上面的片段...

function removeOldest
{
    rm -rf "/$(ls -t "" | tail -1)";
}

...或名为 removeOldest

的可执行文件
#!/bin/bash
rm -rf "/$(ls -t "" | tail -1)";

并称其为

removeOldest /path/to/the/directory

如果你想把它嵌入到脚本中,只需将两者 </code> 直接替换为路径即可。</p> <p>另请注意,如果指定的目录根本不包含任何文件,则会自行删除。<br> 如果你想阻止这种情况,请使用</p> <pre><code>toBeDeleted="$(ls -t "" | tail -1)"; if [ ${#toBeDeleted} -gt 0 ] && [ -d "/$toBeDeleted" ]; then rm -rf "/$toBeDeleted"; fi;