![命令删除除最新文件之外的所有文件,适用于 solaris 和 linux](https://linux22.com/image/1533941/%E5%91%BD%E4%BB%A4%E5%88%A0%E9%99%A4%E9%99%A4%E6%9C%80%E6%96%B0%E6%96%87%E4%BB%B6%E4%B9%8B%E5%A4%96%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%EF%BC%8C%E9%80%82%E7%94%A8%E4%BA%8E%20solaris%20%E5%92%8C%20linux.png)
我正在尝试一个命令,该命令从某个位置删除除最新文件之外的所有文件。我有适用于 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 到输入末尾的每一行。