作为自动化过程的结果,我累积了按顺序命名的文件,并且我只想保留最后 10 个文件。我尝试了这个,它的效果是删除所有内容:
ls -r | more +11 | xargs rm
显然,管道传输more +n
会导致整个结果被管道传输,而不考虑参数+n
。
正确的做法是什么?
答案1
我承认,more
文档中没有任何内容让我明白这将会发生。但是,由于您想在指定的行号(特别是 11)处开始显示(输出/处理)输入(文件列表),因此要使用的逻辑命令是tail
:
ls -r | tail -n +11 | …
给智者的一句话:在做一些危险的事情之前,通过管道输入cat
or xargs
(没有命令)来测试这样的事情xargs rm
。