我的目录中有一个文件
file3.proto
file2.proto
file1.proto
我要删除文件1和文件2,最大的数字是我不想删除的最新文件。如何在shell脚本中实现这一目标?
下面这件事可以完成工作,但我想变得更有活力。如果数字增加,我不想每次都更改Shell脚本,例如如果文件为4,则需要更改1..3。
ls | grep '.proto' | rm file{1..2}.proto
答案 0 :(得分:1)
ls *.proto | head -n -1 | xargs rm
其中包含这些文件
file1.proto
file2.proto
file3.proto
执行命令
rm file1.proto file2.proto
UPDATE :请注意,ls
命令以字母顺序输出文件,而不是数字顺序...我意思是,如果您还有一个file25.proto
,您将从ls
获得此输出:
file1.proto
file25.proto
file2.proto
file3.proto
因此,最好根据文件夹中文件的最大数量来重命名file001.proto
之类的文件。这是文件名排序的常见问题...