linux递归统计文件夹下有几个指定结尾的文件和大小
时间: 2024-10-23 20:02:59 浏览: 69
在Linux中,你可以使用`find`命令配合`du`和`awk`来递归地统计文件夹下特定结尾(如`.txt`, `.jpg`等)的文件数量以及它们的总大小。下面是一个基本示例:
```sh
find /path/to/directory -name "*.txt" -o -name "*.jpg" -type f -exec du -b {} \; | awk '{total += $1} END {print "Total size of *.txt and *.jpg files: ", total "bytes"}'
```
这里解释一下各个部分的作用:
- `find /path/to/directory`: 找到指定目录及其所有子目录下的文件。
- `-name "*.txt"` 和 `-name "*.jpg"`: 指定查找以".txt"和".jpg"结尾的文件。
- `-type f`: 只选择普通文件,排除链接、设备、目录等其他类型的文件。
- `-exec du -b {} \;`: 对每个找到的文件执行`du -b`,计算文件的块大小(默认单位是字节)。
- `| awk '{total += $1} END {print "Total size: ", total "bytes"}'`: 将`du`的结果传递给`awk`,累加每个文件的大小,并在最后打印出总和。
运行这个命令后,它会显示符合条件的文件总数及总大小。如果你需要分别统计,只需要将上面的".txt"和".jpg"替换为你感兴趣的文件类型即可。
阅读全文