想知道如何通过删除 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