%S fundamental block size (for block counts)
Run Code Online (Sandbox Code Playgroud)
告诉您文件系统上每个块有多大。在大多数文件系统上,这是任何文件可以占用的最小空间量。每个文件都使用此值的倍数。
例如,
$ echo > a # create a file containing a single byte
$ du -h a # see how much disk space it's using
4.0K a
$ stat -f -c '%S' . # see what stat thinks the block size is
4096
$ tune2fs -l /dev/mydrive | grep '^Block size'
4096
Run Code Online (Sandbox Code Playgroud)
我不能百分百确定它总是这样工作。例如,我希望它也可以决定打印512
or 1024
,即使底层块大小不同,只要stat -c %b FILE
* stat -f -c %S FILE
= du --block-size=1 FILE
。确切的实现取决于文件系统。
%s block size (for faster transfers)
Run Code Online (Sandbox Code Playgroud)
建议在复制大文件时一次应读取多少字节,例如bs
在使用dd
. 但在我检查的系统上,它总是打印4096
,即使较大的值可能会更快。请参阅是否有办法确定 dd 的 bs 参数的最佳值?对此进行更多讨论。
从技术上讲,此信息(以及来自 的所有信息stat -f
)来自statvfs
系统调用。
%s
对应于f_bsize
字段,并且%S
是f_frsize
。
所以你可以从statvfs 手册页开始了解它们的确切含义
unsigned long f_bsize; /* Filesystem block size */
unsigned long f_frsize; /* Fragment size */
Run Code Online (Sandbox Code Playgroud)