bash - 列出目录中具有特定扩展名的所有文件

标签 bash find

假设我想列出目录中的所有 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/

相关文章:

regex - sed 命令替换 php.ini memory_limit

Excel VBA - 在一系列日期上使用查找方法

Linux:使用 grep 在文件中查找单词,然后打印文件中是否包含该单词

c++ - 如何使用 string::find 在一次操作中找到 "+"或 "-"

windows - Shell 说找到 : missing argument to `-exec' and no alternatives working

linux - Gitlab rake 备份时间戳到别的东西

bash - Intellij Idea 的 Bash 补全样式

bash - 如何使用 bash 工具搜索非 ASCII 字符?

CakePHP:查找邻居,在 'name' 或 'order' 上订购

php - 从 cakephp 运行 linux bash 命令