2010-09-20 11:20:48 +0000 2010-09-20 11:20:48 +0000
163
163

ls-command: 如何以字节数显示文件大小?

在Unix(Tru64)中,如何让ls命令以字节数显示文件大小?目前,我可以用以下方法来显示字节数:

ls -la

答案 (9)

250
250
250
2010-09-20 11:22:20 +0000

也许-h对你来说已经足够了:

-h 与 -l 选项一起使用时,使用单位后缀。Byte、Kilobyte、Megabyte、Gigabyte、Terabyte和Petabyte,以便用2为基数,将数字减少到3位或更少。使用man commandname来阅读某条命令的手册/帮助,例如:这里man ls

32
32
32
2010-09-20 12:33:13 +0000

ls --block-size=M会以Megabytes为单位打印大小,但低于1MB的也会显示为1MB。我不确定这个选项在你的UNIX版本的ls中是否可以接受。 实际上,如果文件足够大的话,

ls -lh也会以千兆字节为单位打印出文件的大小(无论如何:在Linux64位上,这个选项确实可以工作:>)。

15
15
15
2010-09-20 13:36:26 +0000

你必须使用awk来为你计算:

ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'

这不会影响到小于mega的文件的输出。你可以把ls改成 “1000000",如果你喜欢的话。你可以实现一个四舍五入函数。

13
13
13
2012-10-14 08:27:30 +0000

尝试ls -shR为递归人可读格式。

5
5
5
2010-09-20 16:36:06 +0000

du -sm filename.txt

5
5
5
2015-04-19 22:57:53 +0000

你也可以键入

du -sh ./*

这将列出当前目录下的所有文件夹,以人类可读的格式,包括大家比较熟悉的Kb、Mb、Gb大小的文件。

2
2
2
2015-07-24 18:25:55 +0000
ls -l --block-size=MB

对于--block-size参数:

—用MB表示10^6 —只用M表示2^20

2
2
2
2015-06-13 07:36:58 +0000

如果你只想知道某一个文件的大小,那么这个命令,是对前面答案的一个简单的推导,就是:

ls -sh _filename(s)_

-s是表示大小,h是表示人可读(如上文中多次提到的)。

753M myfilename

&001

输出结果是这样的:

&001

如果你不写文件名,它就会列出目录,把每个文件的大小放在它的名字旁边–这和没有文件名参数的情况下调用ls -la时的做法不一样。

0
0
0
2016-03-10 17:34:39 +0000

如果你只是对文件大小感兴趣,而不需要使用ls命令,可以试试下面的命令:

# echo "Hello World" > file.txt
# ls -l file.txt 
-rw-r--r-- 1 user user 12 Mar 10 11:32 file.txt
# stat --printf='%s\n' file.txt
12

这将打印出文件的大小,而不需要解析任何东西。