반응형

이전에 ls 명령어로 확인했던 것 보다 더 자세히 확인할 수 있는 명령어가 있다. 바로 stat 명령어인데, 이후 파일 생성 명령어인 touch에서 한번 더 다루도록 하겠다. 이번 시간에는 기본적인 사용법에 대해 알아보겠다.


Stat 명령어

* 기본 형식

stat (옵션) (파일or디렉토리 명)

ls와 달리 시간이 3가지나 나오고 다른 자세한 사항들도 출력된다. 이 3가지를 통해 해킹 일시 등을 파악하기도 한다.


옵션

-f

파일 상태 대신 파일 시스템 상태를 보여주는 옵션이다.

-t

간략한 형태로 정보를 출력한다.

-L

링크를 따라가며 링크가 가리키는 파일의 상태를 보여준다. 아래 사진은 a.txt가 링크가 걸려있지 않아 기본 형식과 다르지 않지만, 이 명령어는 하드 링크가 아닌 심볼릭 링크에 대해서 정보를 출력한다. 링크에 대해서는 나중에 따로 정리해서 올려놓도록 하겠다.


-c

-c는 어떤 포멧으로 보여줄지 선택해 출력하는 명령어로 -c %(옵션)으로 구성되있다. 이 옵션에 대한 정보는 굉장히(?) 많기 때문에 글로만 정리해 두겠다.

 

파일에 대한 유효한 포맷 시퀀스는 다음과 같다.

  • %a: 8진수 권한 비트를 출력하며, '#'과 '0' printf flag를 주의해야 한다.
  • %A: 권한 비트와 파일 타입을 인간이 읽을 수 있는 형태로 출력한다.
  • %b: 할당된 블록 수를 출력하며, %B를 참조해야 한다.
  • %B: %b로 보고된 각 블록의 크기(바이트)를 출력한다.
  • %C: SELinux 보안 컨텍스트 문자열을 출력한다.
  • %d: 10진수 디바이스 번호(st_dev)를 출력한다.
  • %D: 16진수 디바이스 번호를 출력한다.
  • %f: 16진수로 된 raw mode를 출력한다.
  • %F: 파일 타입을 출력한다.
  • %g: 소유자의 그룹 ID를 출력한다.
  • %G: 소유자의 그룹 이름을 출력한다.
  • %h: 하드 링크 수를 출력한다.
  • %i: inode 번호를 출력한다.
  • %m: 마운트 포인트를 출력한다.
  • %n: 파일 이름을 출력한다.
  • %N: 시스템 링크면 참조를 표시한 쿼트로 묶인 파일 이름을 출력한다.
  • %o: 입출력 전송 최적화 크기 힌트를 출력한다.
  • %s: 파일의 총 크기(바이트)를 출력한다.
  • %t: 문자/블록 디바이스 특수 파일에 대한 주요 디바이스 유형을 16진수로 출력한다.
  • %T: 문자/블록 디바이스 특수 파일에 대한 부 주요 디바이스 유형을 16진수와 인간이 읽을 수 있는 형태로 출력한다.
  • %u: 소유자의 사용자 ID를 출력한다.
  • %U: 소유자의 사용자 이름을 출력한다.
  • %w: 파일 생성 시간을 인간이 읽을 수 있는 형태로 출력한다. 알 수 없으면 '-'를 출력한다.
  • %W: 파일 생성 시간을 Epoch 이후 초 단위로 출력한다. 알 수 없으면 0을 출력한다.
  • %x: 마지막 접근 시간을 인간이 읽을 수 있는 형태로 출력한다.
  • %X: 마지막 접근 시간을 Epoch 이후 초 단위로 출력한다.
  • %y: 마지막 데이터 수정 시간

파일 시스템에 대한 유효한 포맷 시퀀스는 아래와 같습니다.

 

  • %a 비슈퍼유저에게 사용 가능한 블록 수
  • %b 파일 시스템 전체 데이터 블록 수
  • %c 파일 시스템 전체 파일 노드 수
  • %d 파일 시스템에서 사용 가능한 파일 노드 수
  • %f 파일 시스템에서 사용 가능한 블록 수
  • %i 파일 시스템 ID (16진수)
  • %l 파일 이름의 최대 길이
  • %n 파일 이름
  • %s 블록 크기 (빠른 전송을 위한)
  • %S 기본 블록 크기 (블록 수를 위한)
  • %t 파일 시스템 타입 (16진수)
  • %T 파일 시스템 타입 (인간이 읽을 수 있는 형태)

이 명령어를 정리하다 해당 사용법을 보고 이걸 어떻게 해석하며, 정리와 예시는 어떻게 보여줘야할지 고민이 정말 많았는데, 결론은 마지막 부분은 글로만 보여줘야 겠다고 생각했다. 저걸 일일이 다 이미지로 보여주면 눈에 피로가 너무 심하지 않겠는가?

반응형