我想删除特定目录中小于特定大小的文件。
例如,我在服务器上有五个文件:
File1.20221001
大小:-1430KBFile1.20221002
大小:-1320KBFile1.20221003
大小:-27654KBFile1.20221004
大小:-350KBFile1.20221005
大小:-765434KB
我想根据第五个文件的大小删除前四个文件。
答案1
对于特定目录中的文件(即不需要递归搜索),我建议使用zsh
其L
glob 限定符来选择文件长度以字节为单位(或LK
以千字节为单位的长度)。例如:
ls -l -- *(.LK-765434)
或者
rm -- *(.LK-765434)
有关比较过程中如何应用单位和舍入的规则,请参阅man zshexpn
。
答案2
您可以使用该实用程序find
查找大于特定大小的文件,并对找到的文件find
运行rm
以下命令:
find <yourdirectory> -type f -size -765434k -exec echo rm {} \;
这将仅查找-type f
大小小于(-
数字前面)765434 KB(k
数字后面的 表示单位)的文件( )。对于找到的文件,echo rm {}
将使用命令,其中{}
将被替换为找到的文件的路径。
仅会打印将要执行的命令:这有利于检查您是否找到了预期的内容。要有效删除文件,请删除echo
。