如何在 UNIX 命令行中查找文件大小(以 MB 为单位)?
答案1
如果您的ls
支持--block-size
(例如 GNU coreutils)ls
执行以下操作:
ls -s --block-size=1048576 filename | cut -d' ' -f1
答案2
du -h file
或者
ls -lh file
编辑
这个答案是错误的,因为它也可以以 Gb/Kb 为单位报告大小,具体取决于文件的大小。请删除赞同。
答案3
我倾向于使用“du -k myfile”来获取千字节并直观地删除最后三位数字,但我只是在寻找近似大小。
事实证明 du 经常(总是?)有 MB 的 -m 选项。
请记住,文件的大小可能与使用的磁盘空间量略有不同,因为磁盘分配是按块而不是按字节进行的。
如果您因为磁盘空间不足而寻找“胖”文件,这将是一个更有启发性的问题,因为解决方案会更加多样化。
答案4
stat
可以做到这一点。
$ ls -l | grep myfile
-rw------- 1 rory rory 3120 2009-07-02 16:58 myfile
$ stat -c '%s' myfile
3120
以字节为单位提供给您。
您可以使用 bash 的算法来计算兆字节:
$ echo $(( $( stat -c '%s' myfile ) / 1024 / 1024 ))
0
(但在这种情况下会将其四舍五入)