命令删除除最新文件之外的所有文件,适用于 solaris 和 linux

命令删除除最新文件之外的所有文件,适用于 solaris 和 linux

我正在尝试一个命令,该命令从某个位置删除除最新文件之外的所有文件。我有适用于 Linux 的命令,但它不适用于 Solaris 机器。

以下命令将删除除最后 10 个之外的所有文件。

ls -l /*.tps | head -n -10 | rm -rf

答案1

ls -t {pattern} | tail -n +2 | xargs rm

慢动作:

  • 列出所有文件,按时间排序,最新文件排在第一位
  • 从第二个开始打印(因此跳过第一个)
  • 将名称传递给rm

答案2

按照 Oracle 手册页并假设您指的是‘最新’‘最新的’文件,我建议采用以下方法:

ls -1tr | tail -n +11 | xargs rm对于 Linux 和

ls -1tr | /usr/xpg4/bin/tail -n +11 | xargs rm为了神谕

答案3

要从某个位置删除除最新文件之外的所有文件,您可以使用以下跨平台命令:

ls -1t /location | sed -n '2,$p' | xargs rm

sed 程序2,$p打印从 2 到输入末尾的每一行。

相关内容