stat 명령어는 파일이나 파일 시스템의 상태 정보를 출력하는 프로그램으로 stat, statfs 의 System call 호출과 동일한 결과를 출력합니다.


사용법

상태 출력

옵션없이 stat 명령어 뒤에 파일을 입력하면 해당 파일의 상세 정보를 출력합니다.

$ stat /etc/redhat-release 

  File: /etc/redhat-release
  Size: 45              Blocks: 8          IO Block: 4096   regular file
Device: ca02h/51714d    Inode: 9470        Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:etc_t:s0
Access: 2021-02-04 04:57:53.710565576 +0000
Modify: 2020-09-23 09:38:30.000000000 +0000
Change: 2020-11-10 04:11:24.916712115 +0000
 Birth: -
BASH


축약 출력

-t 옵션을 사용하면 축약해서 정보를 출력합니다.

$ stat /etc/redhat-release -t
/etc/redhat-release 45 8 81a4 0 0 ca02 9470 1 0 0 1612414673 1600853910 1604981484 0 4096 system_u:object_r:etc_t:s0
BASH


file system  출력

-f 옵션을 사용하면 statfs 처럼 파일 시스템 상태를 출력합니다.

$ stat /etc/redhat-release -f

  File: "/etc/redhat-release"
    ID: ca0200000000 Namelen: 255     Type: xfs
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 2618363    Free: 774778     Available: 774778
Inodes: Total: 5241792    Free: 5028369
BASH


특정 정보만 출력

stat -c=FORMAT 옵션을 사용하면 특정 정보만 출력할 수 있습니다. FORMAT 은 % 뒤에 한정자를 주며 전체 목록은 stat --help 명령어로 확인할 수 있습니다.

8진수로 권한 표시

%a 는 octal 형식으로 파일의 permission 을 출력하며 %n 은 입력으로 준 파일 경로를 표시합니다. 다음 명령어는 /etc/redhat-release 파일의 8진수 형식 권한을 표시합니다.

$  stat -c "%a %n"  /etc/redhat-release 
644 /etc/redhat-release
BASH


hard link 갯수 표시

%h 는 파일의 하드 링크(hard link) 갯수를 표시하는 지정자입니다. 다음 명령어는 /etc/redhat-release 파일의 링크 갯수를 출력합니다.

$ stat -c "%h %n" /etc/redhat-release 
1 /etc/redhat-release
CODE

ln 명령어로 hard link 를 생성후에 다시 실행해 보면 링크 갯수가 늘어난 것을 확인할 수 있습니다.

$ sudo ln  /etc/redhat-release link1
CODE
$ stat -c "%h %n" /etc/redhat-release
2 /etc/redhat-release
CODE


atime, mtime, ctime 정보 표시

%x , %y, %z 지정자를 사용하면 사람이 읽기 좋게 파일의 atime, mtime, ctime 을 표시해 줍니다.

$ stat -c "%x %y %z" file1

2021-02-28 07:40:43.918599333 +0000 2021-02-28 07:40:43.918599333 +0000 2021-02-28 07:40:43.918599333 +0000
CODE


같이 보기