Answers:
使用“ 查找”命令可按大小查找文件,并将文件名打印到标准输出。
find . -type f -size 0b -print
替代-print
与-delete
删除的文件,而不是将它们打印在屏幕上。
find . -type f -size 0b -delete
-empty
代替-size 0b
。
您也可以直接在外壳中执行此操作。如果您不想删除空的隐藏文件(名称以开头的文件),这可能会很有用.
。尽管您也可以做到这find
一点,但是另一种方法是使用外壳程序本身:
shopt -s globstar
for file in **/*; do [ ! -s "$file" ] && [ -f "$file" ] && rm "$file"; done
shopt -s globstar
:打开bash的globstar选项,使**
匹配一个或多个子目录。**/*
将匹配当前目录及其所有子目录中的所有文件和目录。for file in **/*; do ...; done
:遍历找到的所有文件和目录;[ ! -s "$file" ]
:[ -s "$file" ]
如果文件存在且不为空,则为true。因此,如果文件不存在或为空,则[ ! -s "$file" ]
(与!
测试相反)为true。[ -f "$file" ]
:如果文件是常规文件,则为true。不是目录,设备文件或符号链接等。rm "$file"
:删除文件。在&&
确保如果前一个是成功的所以这只能删除空,普通文件的下一个命令只运行。