> 파일 및 디렉토리 관리 > stat

stat 명령어 가이드: 파일/디렉토리의 상세 정보 확인

`stat` 명령어는 Linux 및 Unix 계열 운영체제에서 파일이나 디렉토리의 상세한 상태 정보를 표시하는 데 사용됩니다. 이 정보에는 파일 크기, 소유자, 그룹, 접근 권한, 최근 접근/수정 시간, inode 번호 등이 포함됩니다. 파일 시스템의 메타데이터를 확인하고 문제를 진단하는 데 유용합니다. 이 가이드를 통해 `stat` 명령어의 다양한 사용법과 출력 결과 해석 방법을 익혀보세요.

stat 개요

`stat` 명령어는 파일이나 디렉토리 자체의 내용이 아닌, 파일 시스템이 해당 객체를 관리하기 위해 저장하는 메타데이터를 보여줍니다. 이는 파일의 생성 시점, 최종 변경 시점, 접근 횟수 등 `ls -l`보다 훨씬 더 자세한 정보를 제공하여, 파일의 변경 이력이나 접근 패턴을 분석할 때 유용합니다.

stat의 주요 역할

`stat` 명령어는 주로 다음과 같은 목적으로 사용됩니다:

주요 활용 분야

  • **파일 속성 확인**: 파일의 소유권, 권한, 크기 등을 정확하게 확인합니다.
  • **타임스탬프 분석**: 파일의 생성, 최종 수정, 최종 접근 시간 등 다양한 시간 정보를 확인하여 파일 변경 이력을 추적합니다.
  • **심볼릭 링크 정보**: 심볼릭 링크의 대상 경로와 링크 자체의 정보를 모두 확인합니다.
  • **파일 시스템 디버깅**: 디스크 공간 사용량, 블록 할당, inode 정보 등을 통해 파일 시스템의 문제를 진단합니다.

stat 출력 정보 이해

`stat` 명령어의 출력은 다양한 항목으로 구성됩니다. 각 항목의 의미를 이해하는 것이 중요합니다.

주요 출력 항목

  • File: 대상 파일 또는 디렉토리의 이름입니다.
  • Size: 파일의 크기(바이트)입니다. 디렉토리의 경우 일반적으로 4096바이트로 표시됩니다.
  • Blocks: 파일이 디스크에서 차지하는 512바이트 블록의 수입니다.
  • IO Block: 파일을 위한 I/O 작업을 수행할 때 효율적인 블록 크기입니다.
  • Type: 파일의 유형을 나타냅니다. 예: regular file, directory, symbolic link 등
  • Device: 파일이 위치한 장치의 ID(major:minor)입니다.
  • Inode: 파일 시스템 내에서 파일의 고유 식별자인 inode 번호입니다. 하드 링크는 동일한 inode를 공유합니다.
  • Links: 해당 파일에 대한 하드 링크의 수입니다.
  • Access: 파일의 권한(8진수 및 rwx 형식)입니다.
  • Uid / Gid: 파일의 소유자(User ID) 및 그룹(Group ID)과 해당 이름입니다.
  • Access / Modify / Change: `Access`: 최종 접근 시간 (atime), `Modify`: 최종 수정 시간 (mtime), `Change`: 최종 변경 시간 (ctime). 'Birth'는 생성 시간(crtime)이며, 모든 파일 시스템에서 지원되지 않을 수 있습니다.

주요 stat 명령어 옵션

`stat` 명령어는 출력 형식을 지정하거나, 심볼릭 링크를 처리하는 방식을 변경하는 등 몇 가지 유용한 옵션을 제공합니다.

1. 기본 출력 옵션

2. 심볼릭 링크 처리 옵션

3. 출력 형식 지정 옵션

생성된 명령어:

명령어를 조합해 보세요.

설명:

`stat` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

`stat` 명령어의 다양한 활용 예시들을 통해 파일/디렉토리의 상세 속성을 확인하고 분석하는 방법을 익혀보세요.

단일 파일의 모든 정보 확인

stat config.ini

`config.ini` 파일의 크기, 권한, 소유자, 타임스탬프 등 모든 상세 정보를 출력합니다.

심볼릭 링크 자체의 정보 확인

stat -P mylink.sh

`mylink.sh`가 `actual_script.sh`를 가리키는 심볼릭 링크일 때, `mylink.sh` 자체의 정보를 출력합니다. (링크 파일의 크기, 소유자 등)

심볼릭 링크가 가리키는 원본 파일의 정보 확인

stat -L mylink.sh

`mylink.sh`가 `actual_script.sh`를 가리키는 심볼릭 링크일 때, `actual_script.sh` 파일의 정보를 출력합니다.

특정 정보만 사용자 정의 형식으로 출력

stat -c '%n %s %y' my_document.txt

`my_document.txt` 파일의 이름, 크기(바이트), 그리고 최종 수정 시간(YYYY-MM-DD HH:MM:SS)만 출력합니다.

파일이 속한 파일 시스템의 정보 확인

stat --file-system /var/log

`/var/log` 디렉토리가 위치한 파일 시스템의 타입, 블록 크기, 마운트 지점 등의 정보를 확인합니다.

파일의 유닉스 타임스탬프 (mtime) 확인

stat -c '%Y' important_data.csv

스크립트에서 파일의 수정 시간을 유닉스 타임스탬프(초)로 가져와 계산 등에 활용할 때 유용합니다.


동일 카테고리 명령어