file
100%

명령줄 · 레슨 6

file

이름이나 확장자에 의존하지 않고 파일의 실제 내용 유형을 추정하는 방법을 배웁니다.

이전 강의에서는 touch로 확장자 없는 파일을 만들었습니다. 리눅스 파일 이름은 내용을 설명하지 않아도 됩니다. funny.gif라는 파일이 반드시 GIF 이미지인 것은 아닙니다.

파일을 검사해 예상 유형을 확인하려면 file 명령어를 사용합니다.

$ file banana.jpg
banana.jpg: JPEG image data

파일 확장자만으로는 부족한 이유

리눅스 도구들은 보통 파일 확장자에 의존하지 않고 파일이 무엇인지 판단합니다. 셸 스크립트는 backup이라는 이름일 수 있고, 텍스트 파일은 README일 수 있으며, 이미지 파일이 잘못된 확장자를 가질 수도 있습니다. file 명령어는 파일 시스템 메타데이터와 내용에서 알아볼 수 있는 패턴 같은 속성을 검사합니다.

$ file README
README: ASCII text
$ file /bin/ls
/bin/ls: ELF 64-bit LSB executable

그 결과는 분류일 뿐 보장은 아닙니다. 특이하거나 불완전하거나 손상된 파일은 정확한 유형 대신 data처럼 넓은 설명으로 표시될 수 있습니다.

report.jpg라는 파일이 이미지가 아닐 수도 있습니다. 실제 내용의 예상 유형을 확인하는 명령어는 무엇인가요?

여러 파일 확인하기

여러 파일을 한 번에 확인할 수 있습니다:

$ file notes.txt image.png archive.tar.gz
notes.txt: ASCII text
image.png: PNG image data
archive.tar.gz: gzip compressed data

쉘 와일드카드도 사용할 수 있습니다. 쉘이 *를 일치하는 이름들로 확장한 뒤 file이 각 파일을 검사합니다.

$ file *

현재 디렉터리에서 *와 일치하는 숨김 항목 이외의 모든 이름을 file로 검사하는 명령어는 무엇인가요?

MIME 정보 표시하기

-i 옵션은 미디어 유형과 가능한 경우 문자 집합을 포함한 MIME 형식 정보를 출력합니다. 다른 프로그램이 text/html 같은 값을 요구할 때 유용합니다.

$ file -i index.html
index.html: text/html; charset=us-ascii

index.html의 MIME 형식 정보를 출력하는 명령어는 무엇인가요?

유용한 file 옵션

  • -i: MIME 타입 정보를 보여줍니다.
  • -b: 간략 모드로, 출력에서 파일 이름을 생략합니다.
  • -L: 심볼릭 링크를 따라갑니다.
  • -z: 압축된 파일을 검사하려 시도합니다.

예를 들어:

$ file -b notes.txt
ASCII text

notes.txt를 분류하되 출력에서 파일 이름을 생략하는 명령어는 무엇인가요?

레슨 완료

file 완료

이제 file을 사용해 파일에 어떤 내용이 들어 있을지 조사할 수 있습니다.

  • 확장자를 믿지 않고 파일을 분류할 수 있습니다.

  • 한 명령어로 여러 경로 이름을 검사할 수 있습니다.

  • MIME 형식 정보를 요청할 수 있습니다.

  • 링크, 압축 데이터와 출력 레이블의 처리 방식을 조정할 수 있습니다.

학습 진행 상황 저장

무료 계정을 만들어 이 레슨을 저장하고 어떤 기기에서든 계속 학습하세요.

무료 계정 만들기
다음 수업
명령줄(으)로 돌아가기