通过Linux命令行检查文件是否为空

时间:2017-03-30 03:35:05

标签: linux bash command-line

我想用bash脚本检查目录中具有相同扩展名的文件是否为空,如果文件名不为空,则打印出该文件的名称。

1 个答案:

答案 0 :(得分:1)

find的作业(精确地为GNU find),假设要匹配的扩展名为.txt,要检查的目录为/directory

find /directory -maxdepth 1 -type f -name '*.txt' -not -empty

递归:

find /directory -type f -name '*.txt' -not -empty

慢速shell,使用for迭代文件,test[)检查条件:

for f in /directory/*.txt; do [ -f "$f" ] && [ -s "$f" ] && echo "$f"; done

递归地使用bash' globstar

shopt -s globstar
for f in /directory/**/*.txt; do [ -f "$f" ] && [ -s "$f" ] && echo "$f"; done