tar 및 gzip 파일에 일반적으로 파일 확장자가 있는 이유는 무엇입니까?

tar 및 gzip 파일에 일반적으로 파일 확장자가 있는 이유는 무엇입니까?

unice에서는 파일 확장자가 필요하지 않지만 내가 본 모든 tar, gzip 또는 bzip 파일은 .tar, .tar.gz또는 .tgz.

특별한 이유가 있나요? 아니면 그냥 관습인가요?

답변1

원래 UNIX 시스템에서는 파일 이름 확장자가 관례였습니다. 이를 통해 사람들은 파일을 열 때 올바른 프로그램을 선택할 수 있습니다. 현대의 관례는 대부분의 상황에서 확장을 사용하는 것입니다.

  • 일반 파일에만 확장자가 있고 디렉터리나 장치 이름은 없습니다. 디렉토리나 장치라는 단순한 사실만으로도 파일 유형을 나타내는 데 충분합니다.
  • 직접 호출되는 실행 파일에는 확장자가 없습니다. 사용자에게는 실행 가능한 정보만으로 충분하며 커널은 파일 이름에 신경 쓰지 않습니다.
  • 모두 대문자로 된 단어로 시작하는 파일은 일반적으로 텍스트 파일입니다(예 README: TODO. 때로는 하위 카테고리를 나타내는 추가 섹션이 있는 경우도 있습니다(예 INSTALL.linux: ) INSTALL.solaris.
  • 이름이 점으로 시작하는 파일은 특정 응용 프로그램에 대한 구성 또는 상태 파일이며 일반적으로 확장자가 없습니다(예 .bashrc: , .profile, ) .emacs.
  • 몇 가지 전통적인 경우가 있습니다 Makefile.

(이는 엄격하고 빠른 규칙이 아닌 일반적인 시나리오입니다.)

대부분의 바이너리 파일 형식에는 파일의 속성을 설명하는 일종의 헤더도 포함되어 있으며 일반적으로 파일 형식을 다음으로 식별할 수 있습니다.매직넘버. 이것file명령은 이 정보를 보고 추측한 내용을 보여줍니다.

파일 확장자가 파일 형식보다 더 많은 정보를 제공하는 경우도 있고 그 반대인 경우도 있습니다. 예를 들어, 많은 파일 형식에는 다음이 포함됩니다.압축아카이브: Java 라이브러리(.jar), OpenOffice 문서( .odt, …), Microsoft Office 문서( .docx, …) 등 또 다른 예는 소스 코드 파일입니다. 확장자는 프로그래밍 언어를 나타내며 컴퓨터가 파일 내용에서 자동으로 추측하기 어렵습니다. 대조적으로, .o컴파일된 코드 파일 과 같은 일부 확장은 매우 모호합니다 (대상 파일), 그러나 파일 내용을 검사하면 일반적으로 대상 파일이 의도된 시스템 유형과 운영 체제를 쉽게 알 수 있습니다.

이 확장의 한 가지 장점은 파일을 열고 매직 시퀀스를 찾는 것보다 이를 식별하는 것이 훨씬 빠르다는 것입니다. 예를 들어, 셸에서 파일 이름 완성은 거의 항상 이름 기반(주로 확장명)입니다. 큰 디렉터리에 있는 모든 파일을 읽는 데는 시간이 오래 걸릴 수 있지만 파일 이름만 읽는 것만으로도 를 누를 수 있을 만큼 빠르기 때문입니다 Tab.

때로는 두 파일 형식이 거의 동일하지 않은 경우 파일 확장자를 변경하면 파일이 해석되는 방식을 설명할 수 있습니다. 예를 들어, 웹 서버는 전자를 .shtml다르게 처리할 수 .html있으며 전자는 다음과 같은 과정을 거칩니다.서버 측 전처리, 후자는 있는 그대로 제공됩니다.

gzip 아카이브의 경우 gzip이름이 로 끝나고 일부 다른 확장자가 있는 .gz파일은 다시 압축되지 않습니다 .tgz. 이렇게 하면 gzip *압축된 디렉터리의 모든 파일을 실행할 수 있으며 이미 압축된 파일은 수정되지 않습니다.

답변2

그들은 아마 그렇지 않을 것이다필요확장자를 사용하지만 ls.

답변3

파일 확장자는 기본적으로 시스템 사용자의 규칙입니다. 일부 도구는 파일 확장자를 사용하여 작업을 수행합니다. 예를 들어 Nautilus는 파일 확장자에 따라 다른 아이콘을 표시합니다.

내가 당신에게 이라는 파일을 주면 file당신은 그 파일을 여는 방법을 모를 수도 있습니다. 하지만 file.tar.gzor 이라는 파일을 주면 file.tar빠르고 쉽게 알아낼 수 있습니다.

관련 정보