假设我想列出目录中的所有 php
文件,包括子目录,我可以在 bash 中运行:
ls -l $(find.-name *.php -type f)
问题在于,如果根本没有 php
文件,则执行的命令是 ls -l
,列出所有文件和目录,而不是没有。
这是个问题,因为我正在尝试使用
获取所有php
文件的组合大小
ls -l $(find . -name *.php -type f) | awk '{s+=$5} END {print s}'
如果没有匹配 *.php
模式的文件,最终会返回所有条目的大小。
如何防范这个事件?
最佳答案
我建议您先搜索文件,然后执行 ls -l
(或其他任何操作)。例如像这样:
find . -name "*php" -type f -exec ls -l {} \;
然后您可以通过管道传递 awk
表达式来进行添加。
关于bash - 列出目录中具有特定扩展名的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18823609/