ls -t | tail -n +2 | xargs rm --
ls -t 按时间降序
tail -n +2 输出从第二行开始的内容
tail -n 2 输出最后两行
tail -n +2 从第二行开始到最后
不写+号的情况,删除后面n-1行
ls -t | tail -n$((`ls -l | wc -l`-2)) | xargs rm --;
注意:文件名中含特殊字符的时候可能会出问题
参考:
https://stackoverflow.com/questions/26765163/delete-all-files-except-the-newest-3-in-bash-script
http://mywiki.wooledge.org/ParsingLs