我正在尝试一个命令,该命令从某个位置删除除最新文件之外的所有文件。我有适用于 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 到输入末尾的每一行。