删除具有某些扩展名的文件和0长度的文件

删除具有某些扩展名的文件和0长度的文件

想知道如何通过删除 Bash 脚本中此目录中找到的所有长度为零、带有 .tmp 或带有 .swp 扩展名的文件来清理目录(请注意,有时 .swp 和 .tmp 文件是隐藏的) 。

答案1

有 3 个文件 - 检查它们的大小。

 find . -type f \( -name "*.tmp" -o -name "*.swp" \) -ls
17717019        0 -rw-r--r--    1 jai              wheel                   0 Mar 23 09:10 ./a/.tmp
17717018        0 -rw-r--r--    1 jai              wheel                   0 Mar 23 09:10 ./a/x.swp
17717007        8 -rw-r--r--    1 jai              wheel                  38 Mar 23 09:09 ./b/y.swp

查找大小为 0 字节的文件 -

$ find . -type f \( -name "*.tmp" -o -name "*.swp" \) -size 0c 
  ./a/.tmp
  ./a/x.swp

仅删除大小为 0 的文件 --

 $ find . -type f \( -name "*.tmp" -o -name "*.swp" \) -size 0c -exec rm -i {} \;
    remove ./a/.tmp? y
    remove ./a/x.swp? y
    $ 

再次检查——仅保留非零大小的文件

$ find . -type f \( -name "*.tmp" -o -name "*.swp" \) -ls
    17717007        8 -rw-r--r--    1 jai              wheel                  38 Mar 23 09:09 ./b/y.swp

相关内容