사전

파일 이름은 무엇입니까?

파일 이름은 tmp.txt와 같이 폴더 안에서 파일이 갖는 이름입니다. 파일 시스템은 이 이름을 파일 외부에 보관하며, 사용자가 이름을 변경할 수 있습니다.

file-name

파일 이름은 폴더 안에서 파일을 식별하는 이름입니다. 파일 이름은 기본 이름과 선택적인 확장자로 구성되며, 둘은 마침표로 구분됩니다. tmp.txt에서 기본 이름은 tmp이고 확장자는 txt입니다.

메타데이터 보고서에서 File Name 필드는 이 이름을 표시합니다. 이 이름은 사용자가 선택할 수 있고 나중에 변경할 수도 있습니다. 이름은 파일 내용의 일부가 아니기 때문입니다.

값이 어디에서 오는지

파일 시스템은 파일 이름을 파일 내부가 아니라 폴더에 저장합니다. 따라서 메타데이터 리더 ExifTool은 File Name을 파일 크기처럼 가상 태그(pseudo tag)로 취급합니다.

일부 형식은 파일 내부에도 이름을 저장합니다:

  • ZIP 아카이브는 포함된 모든 파일의 이름을 선택적인 상대 경로와 함께 저장합니다.
  • gzip 파일은 압축한 원래 파일의 이름을 폴더 이름 없이 저장할 수 있습니다.
  • MP3 파일에서 볼 수 있는 ID3v2 태그는 TOFN 프레임에 원래 파일 이름을 저장할 수 있습니다.

다운로드는 파일 외부에서 제안된 이름을 받을 수도 있습니다. 웹 서버는 filename=example.html와 같이 Content-Disposition 헤더에 이 이름을 넣어 보낼 수 있습니다. 다운로드를 저장하는 프로그램은 이 이름을 참고용으로만 취급해야 합니다.

값이 어떻게 보이는지

File Name은 확장자를 포함한 전체 이름을 표시하지만, 폴더 경로는 포함하지 않습니다. ExifTool은 폴더를 별도의 Directory 필드에 저장합니다. 많은 형식에서 확장자는 파일 형식과 일치합니다.

Windows는 OSCAR, Oscar, oscar를 같은 이름으로 취급합니다. POSIX 파일 시스템은 이들을 서로 다른 3개의 이름으로 취급할 수 있습니다. Windows에서는 일반적으로 하나의 이름은 255자, 고전적인 전체 경로는 260자로 제한됩니다.

파일 이름에 사용할 수 없는 문자

Windows에서 파일 이름은 다음 규칙을 따라야 합니다:

  • 이름에는 문자 :, ", /, |, ?, *, 역슬래시, 작다(<) 기호, 크다(>) 기호를 포함할 수 없습니다.
  • 이름에는 정수 값이 0부터 31까지인 문자를 포함할 수 없습니다.
  • 이름은 CON, PRN, AUX, NUL, COM1, LPT1처럼 예약된 장치 이름이 될 수 없으며, 확장자의 유무와 관계없이 사용할 수 없습니다. Microsoft의 이름 규칙에서는 NUL.txt를 NUL과 동일하게 취급합니다.
  • 이름은 공백이나 마침표로 끝날 수 없습니다. 파일 시스템이 이런 이름을 허용할 수는 있지만, Windows 셸은 허용하지 않습니다.

이식 가능한 운영 체제를 위한 POSIX 표준은 더 느슨합니다. POSIX 파일 이름은 슬래시와 널 바이트를 제외한 모든 바이트를 포함할 수 있습니다.

POSIX 시스템 간에 안전하게 이동할 수 있는 이름을 위해, POSIX는 이식 가능한 문자 집합을 정의합니다. 이 집합에는 A부터 Z, a부터 z까지의 문자, 0부터 9까지의 숫자, 마침표, 밑줄, 하이픈이 포함됩니다. POSIX는 명령줄에서 문제가 생길 수 있으므로 첫 문자로 하이픈을 사용하는 것은 피하라고 권장합니다.

왜 중요한지

파일 이름은 해당 폴더 안에서 고유해야 합니다. 확장자는 이름의 일부입니다. 따라서 기본 이름이 같고 확장자만 다른 두 파일은 같은 폴더에 있을 수 있습니다.

파일 이름을 바꾸어도 파일 내용은 변경되지 않으며, 확장자를 바꾼다고 해서 형식이 바뀌지는 않습니다. ExifTool은 파일 자체를 변경하지 않고 새로운 File Name을 쓸 수 있습니다.

일반적으로 ExifTool은 파일 헤더를 읽어 파일 형식을 찾습니다. 특수한 빠른 설정은 헤더를 건너뛰고 확장자에서 파일 형식을 가져옵니다.

파일 내부에 저장된 제목은 파일 이름과는 별개입니다. PDF는 Title을 저장할 수 있고, ID3v2 태그는 TIT2 프레임에 곡 제목을 저장합니다. 파일 이름을 바꿔도 이 두 제목은 바뀌지 않습니다.