我使用Ubuntu 16.04.1 LTS的bash rm删除旧文件仅删除第一个
我发现了一个script删除一切,但“N”最新的目录中的文件。
我把它修改成这样:
sudo rm /home/backup/`ls -t /home/backup/ | awk 'NR>5'`
它删除只有一个文件。它会报告以下有关应删除的其他文件的消息:
rm: cannot remove 'delete_me_02.tar': No such file or directory
rm: cannot remove 'delete_me_03.tar': No such file or directory
...
我相信问题是路径。它正在寻找当前目录中的delete_me_02.tar(以及后续文件),并且它以某种方式失去了对正确目录的引用。
如何修改我的命令以继续查看所有'n'文件的/ home/backup /目录?
找到是正确的答案。 find/home/backup /。 -type f | xargs ls -t | tail -n + 5 | xargs rm -f' – ekcell
我相信这是有效的,因为'find'返回完整路径,我认为这是一个有点显着的区别。 – ekcell