형식 문자는 인쇄 파일 크기를 바이트 단위로 %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
처음에 사용한 이유는 와 같은 출력이 필요한데 ls
시간이 없어서 -c'%A %h %U %G %s %n'
.
ls
아니면 시간 없이 유사한 출력을 인쇄 할 수 있는 다른 방법이 있습니까 ?
답변1
예를 들어 날짜 형식을 지정하되 공백으로 두십시오.
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
답변2
'
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