Bash 查找大小为零的文件并删除具有不同扩展名的文件

Bash 查找大小为零的文件并删除具有不同扩展名的文件

此命令将查找大小为零的文件:

find . -size 0

返回的文件名可能是

filename.001

我正在寻找一个可以删除用此命令找到的文件以及任何具有相同文件名但扩展名不同的文件(大小非零)的单行程序,因此这些文件也会被删除:

filename.txt
filename.bak
filename.ZZz

答案1

$> find . -size 0 | while read f; do rm "${f%.*}."* ; done

解释:

  1. 查找所有大小为 0 的文件
  2. 将名称传送到 while 循环
  3. 删除后缀(扩展)部分${f%.*}(读作man bash
  4. rm具有相同基础的所有其他文件

相关内容