我如何删除一个带有 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;
我有以下文件夹:
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;