如何找到某些指定文件的大小?
该命令尝试总结大小:
find . -iname "*.dmg" -exec du -sh '{}' \; 3&> /dev/null |
awk '{print $1}' | summming_up_program???
您能找到更简单的解决方案吗?
Ubuntu 解决方案。 感谢 Ayman 的 Awk 结束。
find . -iname "*.dmg" -printf '%b\n' |
awk 'BEGIN { s = 0 } {s += $1 } END { print "%dMB", s / 2^20 }'
The command tries to sum up the sizes:
find . -iname "*.dmg" -exec du -sh '{}' \; 3&> /dev/null |
awk '{print $1}' | summming_up_program???
Can you find a simpler solution?
Ubuntu Solution. Thanks for the Awk-end to Ayman.
find . -iname "*.dmg" -printf '%b\n' |
awk 'BEGIN { s = 0 } {s += $1 } END { print "%dMB", s / 2^20 }'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
stat
用于获取文件的大小。awk
用于计算所有文件大小的总和。编辑:
不分叉 stat 的解决方案:
stat
is used to obtain the size of a file.awk
is used to sum all file sizes.Edit:
A solution that does not fork
stat
:可能比通过管道传输文件更快。
wc -c
不计算字节数,它从 inode 检索大小...或者我的硬盘读取速度为 717 GB/s :-)Might be faster then cat'ing the files through the pipe.
wc -c
does not count the bytes, it retrieves the size from inode... or my hdd has a reading speed of 717 GB/s :-)猫 *.dmg | 厕所-c
cat 将所有文件复制到 stdout,wc 计算转储文件的大小。 没有任何内容写入磁盘。
虽然效率不高,但我也能理解:)
cat *.dmg | wc -c
cat copies all the files to stdout, and wc counts the size of what was dumped. Nothing gets written to disk.
Not as efficient, but even I can understand it :)
增强了 Ayman 的非分叉命令:
感谢 Ayman 纠正了我最初的回复。
Enhanced Ayman's non-forking command:
Thanks to Ayman for correcting my initial reply.