我想删除特定目录中小于特定大小的所有文件

我想删除特定目录中小于特定大小的所有文件

我想删除特定目录中小于特定大小的文件。

例如,我在服务器上有五个文件:

  1. File1.20221001大小:-1430KB
  2. File1.20221002大小:-1320KB
  3. File1.20221003大小:-27654KB
  4. File1.20221004大小:-350KB
  5. File1.20221005大小:-765434KB

我想根据第五个文件的大小删除前四个文件。

答案1

对于特定目录中的文件(即不需要递归搜索),我建议使用zshLglob 限定符来选择文件长度以字节为单位(或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

相关内容