file 명령어

리눅스 file 명령어 가이드: 파일의 진짜 정체를 파악하는 방법

리눅스를 사용하다 보면 확장자가 없거나, .txt 파일임에도 불구하고 열리지 않는 당혹스러운 상황을 마주하게 됩니다. 윈도우와 달리 리눅스는 파일의 확장자에 의존하지 않기 때문입니다. 이때 필요한 것이 바로 file 명령어입니다. 파일 내부의 매직 넘버(Magic Number)를 분석하여 해당 파일이 텍스트인지, 실행 파일인지, 혹은 압축 파일인지 정확하게 알려주는 이 명령어의 활용법을 핵심 위주로 정리해 드립니다.


1. file 명령어는 어떻게 파일을 식별할까?

file 명령어는 단순히 이름만 보는 것이 아니라 세 가지 단계의 테스트를 거칩니다. 첫째는 시스템 호출을 통한 파일 시스템 테스트, 둘째는 파일 시작 부분의 특정 바이트 배열을 확인하는 매직 테스트, 마지막으로 언어셋을 확인하는 언어 테스트입니다. 이를 통해 파일의 인코딩(ASCII, UTF-8 등)과 라이브러리 의존성까지 파악할 수 있습니다.

2. file 명령어 주요 옵션 상세 비교

명령어의 효율을 높여주는 필수 옵션들을 정리했습니다.

[표 1] file 명령어 주요 옵션 및 용도
옵션 설명 주요 특징
-b Brief 모드 (파일명을 출력하지 않음) 스크립트에서 결과값만 추출할 때 유용
-i MIME 타입으로 출력 text/plain, image/png 등 표준 형식 확인
-z 압축 파일 내부 확인 압축을 풀지 않고 내부 콘텐츠 유형 파악
-L 심볼릭 링크 참조 링크 자체가 아닌 원본 파일의 정보 표시

3. 실무 활용 예시 및 팁

① 기본 사용법

file mystery_file
출력 예: mystery_file: ELF 64-bit LSB executable, x86-64... (실행 파일임을 확인)

② 웹 개발 및 보안 점검 (MIME 타입)

파일 업로드 기능을 구현하거나 보안 점검 시 실제 파일 형식을 체크할 때 유용합니다.

file -i image.jpg
출력 예: image.jpg: image/jpeg; charset=binary

③ 여러 파일 한꺼번에 확인하기

file * : 현재 디렉토리 내 모든 파일의 형식을 리스트업합니다.

💡 요약: 파일 관리가 쉬워지는 한 걸음

리눅스에서 file 명령어는 보이지 않는 파일의 내면을 들여다보는 돋보기와 같습니다. 특히 자동화 스크립트를 짤 때 file -b --mime-type 조합을 사용하면 파일 형식에 따른 조건 분기를 매우 깔끔하게 처리할 수 있습니다. 더 이상 잘못된 확장자에 속지 말고 file 명령어로 스마트하게 관리하세요!

내용이 유익했다면 공유 부탁드리며, 리눅스 서버 운영 중 해결되지 않는 문제가 있다면 언제든 댓글로 남겨주세요!

[표 2] file 명령어 활용 시나리오 체크리스트
상황 권장 옵션 기대 결과
순수 텍스트 인코딩 확인 기본 사용 ASCII, UTF-8 등 인코딩 확인
HTTP 헤더용 타입 추출 -i 표준 MIME 타입 획득
결과값만 스크립트 변수 할당 -b 파일명 제외 깔끔한 데이터

댓글 쓰기

다음 이전