shell脚本实现查看指定目录下的所有文件或文件夹的大小
时间: 2024-04-14 19:29:12 浏览: 9
您可以使用以下shell脚本来查看指定目录下的所有文件或文件夹的大小:
```shell
#!/bin/bash
# 指定目录
directory="/path/to/directory"
# 遍历目录
for item in "$directory"/*; do
if [ -d "$item" ]; then
# 计算文件夹大小
size=$(du -sh "$item" | awk '{print $1}')
echo "文件夹: $(basename "$item") 大小: $size"
elif [ -f "$item" ]; then
# 计算文件大小
size=$(du -h "$item" | awk '{print $1}')
echo "文件: $(basename "$item") 大小: $size"
fi
done
```
请将`/path/to/directory`替换为您想要查看的目录的路径。该脚本将遍历目录中的每个项目,并使用`du`命令计算文件或文件夹的大小。对于文件夹,我们使用`du -sh`命令以人类可读的格式显示大小。对于文件,我们使用`du -h`命令以人类可读的格式显示大小。
您可以将此脚本保存为`script.sh`文件,并通过运行`bash script.sh`来执行它。
相关问题
shell脚本计算文件大小
要计算文件大小,你可以使用shell命令ls -l [文件名] | awk '{sum = $5}; END {print sum}'。这个命令会列出文件的详细信息,并通过awk命令提取出文件大小。具体的步骤如下:
1. 打开终端或命令行界面。
2. 使用cd命令进入包含文件的目录。
3. 输入ls -l [文件名],将[文件名]替换为你想要计算大小的文件名称。
4. 输入| awk '{sum = $5}; END {print sum}',这将提取文件大小并打印出来。
5. 按回车键执行命令,你将看到文件的大小以字节为单位。
请注意,如果你想要计算文件夹下所有文件的总大小,可以使用ls -l [文件夹名称] | awk '{sum = sum + $5}; END {print sum}'。这个命令会将文件夹下所有文件的大小相加,并打印出总大小。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [shell:一个根据linkMap文件计算Xcode里各个工程代码占安装包大小的工具](https://download.csdn.net/download/weixin_42131439/18263029)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [linux系统使用shell命令统计文件夹下文件数量和大小](https://blog.csdn.net/limengshi138392/article/details/129580588)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [Shell脚本获取指定目录文件大小](https://blog.csdn.net/anwh9295/article/details/119750474)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
shell脚本生成dmg
要使用shell脚本生成dmg,您可以按照以下步骤操作:
1. 创建一个包含您要打包的应用程序、图标、背景等文件的文件夹。
2. 使用hdiutil命令创建一个空的dmg文件,例如:
```
hdiutil create -fs HFS+ -volname "MyApp" -srcfolder "/path/to/folder" "MyApp.dmg"
```
这将创建一个名为"MyApp.dmg"的dmg文件,其中"/path/to/folder"是您要打包的文件夹的路径。
3. 使用hdiutil命令将文件夹中的所有文件挂载到dmg中,例如:
```
hdiutil attach "MyApp.dmg"
cp -R "/path/to/folder" "/Volumes/MyApp"
```
这将把您的文件夹中的所有文件复制到挂载的dmg中。
4. 使用hdiutil命令卸载dmg,例如:
```
hdiutil detach "/Volumes/MyApp"
```
5. 如果需要,您可以使用dmgbuild工具来自定义dmg文件的图标、背景、大小等属性,例如:
```
dmgbuild -s "/path/to/source_folder" -d "/path/to/destination_folder" -i "/path/to/icon.icns" -b "background.png" -s "128m" -n "MyApp"
```
这将创建一个名为"MyApp.dmg"的dmg文件,并将其放置在指定的目标文件夹中。
注意:以上命令仅供参考,具体的命令和参数可能因您的实际情况而有所不同。