파일이나 파일 시스템의 상태를 출력하는 linux stat 명령어 사용법
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: -
축약 출력
-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
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
특정 정보만 출력
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
hard link 갯수 표시
%h 는 파일의 하드 링크(hard link) 갯수를 표시하는 지정자입니다. 다음 명령어는 /etc/redhat-release 파일의 링크 갯수를 출력합니다.
$ stat -c "%h %n" /etc/redhat-release 1 /etc/redhat-release
ln 명령어로 hard link 를 생성후에 다시 실행해 보면 링크 갯수가 늘어난 것을 확인할 수 있습니다.
$ sudo ln /etc/redhat-release link1
$ stat -c "%h %n" /etc/redhat-release 2 /etc/redhat-release
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