如何使用ls命令输出RM特定目录

问题描述:

我想在目录中删除旧的文件时,文件的数量大于5我使用如何使用ls命令输出RM特定目录

(LS -1T |尾-n 3)

获取目录中最旧的3个文件。这完全符合我的要求。现在我想用rm在一个命令中删除它们。当我在Linux服务器上运行这些命令时,请进入目录并删除不起作用,因此我需要使用find或ls与rm并删除最旧的3个文件。请帮忙。 谢谢:)

+0

_CD到目录和删除不working_ - 怎么样? 'ls -1t'也只在当前目录下运行,所以既然它可以工作,它必须已经在正确的目录中。 – Armali

如果要从某个任意目录中删除文件,请将目录名称传递给ls命令。默认是使用当前目录。

然后使用$()参数展开的tail结果转移到rm这样

rm $(ls -1t dirname| tail -n 3) 
+0

我想删除一个特定的目录,我不能将目录名传递给rm cmd吗?有些像:'rm $(ls -lt | tail -n 3)' – user2340345

+0

如果我使用cd && rm $(ls -lt | tail -n 3),那么它说没有这样的目录。他们是zip文件,并没有被删除。 – user2340345

+0

我已更新答案,以便您可以从任何目录中删除文件。 –

rm $(ls -1t | tail -n 3) 2> /dev/null 
+0

为什么你重定向* stderr *?为什么不用'rm -f'? –