如何删除除最新的N个文件之外的所有文件?

Hat*_*kNZ 4 bash

这个命令允许我从我的电脑登录到服务器的特定目录 ssh -t xxx.xxx.xxx.xxx "cd /directory_wanted ; bash"

那么我该如何在该目录中执行此操作。我希望能够基本上删除除 N 个最新文件之外的所有文件。 find ./tmp/ -maxdepth 1 -type f -iname *.tgz | sort -n | head -n -10 | xargs rm -f

gag*_*nso 7

这个命令应该有效:

ls -t *.tgz | tail -n +11 | xargs rm -f

警告:执行此操作之前rm -f,请确认列出的文件ls -t *.tgz | tail -n +11符合预期。

怎么运行的:

ls列出目录的内容。标志按修改时间-t排序 (最新的在前)。请参阅ls的手册页

tail -n +11从第 11 行开始输出。请参阅tail的手册页 了解更多详细信息。

如果系统是Mac OS X,那么您也可以根据创建时间进行删除。ls与标志一起使用-Ut。这将根据创建时间对内容进行排序。