stat 사용 시 파일 크기 형식 변경

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처음에 사용한 이유는 와 같은 출력이 필요한데 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

관련 정보