我使用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