我想知道,使用常用的unix工具来确定文件大小的最佳方法是什么? 我需要在shell脚本中以字节为单位确定文件的大小。 问题是,shell脚本需要可移植到不同的操作系统,如osx,irix,linux – 这就是说:使用“stat”命令可能无法正常工作,因为获取我想要的结果所需的参数是不同的在几乎每个操作系统上。
我试着用:
cat ... | wc -c
虽然这似乎工作得很好,我可能会在多字节环境中的问题,不是吗? 那么,做这件事的好方法是什么?
为此,您可以使用以下内容:
du --block-size=1 filename
我不知道它的可移植性。 在命令的手册页中列出了GNU coreutils软件包。
如果要确定文件的大小,而不是磁盘上占用的空间,请添加–apparent-size 。
cksum文件
从维基百科
互通性
标准cksum命令(在大多数类UNIX操作系统(包括GNU / Linux,* BSD,Mac OS X和Solaris)中使用基于以太网标准帧检查的CRCalgorithm,因此可以在实现
当然互操作性是针对校验和而不是针对计数字节部分的。
stat -c %s /path/to/filename
ls和awk是相当标准的。 你可以试试
ls -l file | awk '{print $5}'
man wc
打印换行符,字和字节数
user@machine:~$ ls -lh datefix.vim -rw-r--r-- 1 user group 264 2011-06-28 23:26 datefix.vim user@machine:~$ wc datefix.vim 6 12 264 datefix.vim user@machine:~$ wc datefix.vim | awk '{print $3}' 264
wc不知道或关心Unicode – 它认为一个字节是一个字节。 我也在一个234 MB的.lzma文件上testing了这一点,以certificate它…所以一个简单的wc -c也将得到你想要的。