Command-Line
使用 stat 時更改文件大小格式
格式化字元以字節為單位列印文件
%s
大小stat
# stat -c'%A %h %U %G %s %n' /bin/foo -rw-r--r-- 1 root root 45112 /bin/foo
ls
可以配置為使用“千分隔符”列印字節大小數,即45,112
代替通常的45112
.# BLOCK_SIZE="'1" ls -lA -rw-r--r-- 1 root root 45,112 Nov 15 2014
我可以類似地格式化 stat 的輸出,使文件大小有千位分隔符嗎?
我首先使用的原因
stat
是,我需要輸出 likels
,但沒有時間,因此-c'%A %h %U %G %s %n'
.或者有沒有其他方法可以在
ls
沒有時間的情況下列印 -like 輸出?
指定日期格式,但將其留空,例如。
ls -lh --time-style="+"
生產
-rwxrwxr-x 1 christian christian 8.5K a.out drwxrwxr-x 2 christian christian 4.0K sock -rw-rw-r-- 1 christian christian 183 t2.c
在 GNU 系統上,您可以使用
'
GNU 的標誌printf
:$ stat -c"%A %h %U %G %'s %n" /bin/foo -rw-r--r-- 1 root root 45,112 /bin/foo
這記錄在
man 3 pritnf
:' For decimal conversion (i, d, u, f, F, g, G) the output is to be grouped with thousands' grouping characters if the locale information indicates any. Note that many versions of gcc(1) cannot parse this option and will issue a warning. (SUSv2 did not include %'F, but SUSv3 added it.)
或者,您可以自己解析它:
$ stat --printf="%A\t%h\t%U\t%G\t%s\t%n\n" a | rev | awk '{gsub(/.../,"&,",$2); print}' | rev -rwxr-xr-x 2 terdon terdon 4,096 file