shell求出某文件夹下所有后缀为.sh文件的总大小
时间: 2024-03-24 19:36:01 浏览: 12
可以使用`du`命令配合`grep`命令来实现:
```
du -ch /path/to/folder/*.sh | grep total$
```
其中:
- `du -ch /path/to/folder/*.sh`:统计指定目录下所有后缀为`.sh`文件的大小,并以人类可读的方式输出。
- `grep total$`:过滤出总大小,只显示最后一行以`total`结尾的行。
执行上述命令后,即可输出指定目录下所有后缀为`.sh`文件的总大小。
相关问题
shell求出所有文件下所有后缀为.sh文件的总大小
可以使用`find`命令配合`du`命令来实现:
```
find /path/to/folder -name "*.sh" -type f -print0 | du -ch --files0-from=-
```
其中:
- `find /path/to/folder -name "*.sh" -type f -print0`:查找指定目录下所有后缀为`.sh`的文件,并将它们以`\0`分隔符的方式输出。
- `du -ch --files0-from=-`:读取`find`命令输出的文件列表,并统计它们的大小,并以人类可读的方式输出。
执行上述命令后,即可输出指定目录下所有后缀为`.sh`文件的总大小。
编写一个shell脚本,遍历当前文件夹下的所有文件。如果子文件夹下包含cmd.sh 就执行 sh cmd.sh
你可以使用以下 Shell 脚本来实现你的需求:
```bash
#!/bin/bash
# 遍历当前文件夹下所有文件和子文件夹
for file in $(find . -type f); do
# 如果子文件夹下包含 cmd.sh,则执行 sh cmd.sh
if [[ $file == */cmd.sh ]]; then
sh $file
fi
done
```
这个脚本会使用 `find` 命令遍历当前文件夹下的所有文件和子文件夹。对于每个找到的文件,如果它的路径包含 `/cmd.sh`,则执行 `sh cmd.sh` 命令。请注意,此脚本假定当前文件夹下没有空格或其他特殊字符的文件名。如果有这样的文件名,你需要修改脚本以正确处理它们。