답변:
UNIX / Linux에는 Windows와 동일한 초기 DOS / CP / M 유산이 없습니다. 따라서 확장은 일반적으로 대부분의 UNIX 유틸리티 및 도구에 덜 중요합니다.
나는 보통 명령 행 전용 환경을 사용합니다. Linux 환경에서 그러한 환경의 확장은 운영자 나 사용자의 편의를 제외하고는 중요하지 않습니다. (파일 관리자가 확장명을 처리하는 방법을 알기 위해 KDE 또는 그놈에 대한 경험이 충분하지 않습니다.)
그러나 이러한 편의는 일반적으로 중요합니다. 경우 config.ini
마이크로 소프트 표준 ".INI"형식 정말, 나는 연장 스탠드를 할 것입니다. 평범한 오래된 텍스트 파일은 일반적으로 Linux에서 확장명을 갖지 않지만 모든 프로그램 구성 파일에 보편적 인 것은 아닙니다. 프로그래머는 보통 그것을 결정하게됩니다.
".txt"는 Linux가 구성 파일이나 다른 기계 판독 가능 문서가 아니라고 강조하려는 경우 유용합니다. 그러나 소스 배포판에서는 이러한 파일의 이름을 확장명없이 모두 대문자로 지정합니다 (예 : README, INSTALL, COPYING 등).
일부 표준과 규칙이 있지만 다른 사람과 공유하지 않는 한 원하는 것을 명명하는 데 방해가되지 않습니다.
Windows에서 파일 이름을 지정 .exe
하면 셸 (일반적으로 explorer.exe
)에 실행 파일 임을 나타냅니다 . UNIX는이 지식을 파일 시스템의 권한으로 빌드합니다. 적절한 x
비트 (참조 man chmod
)가 설정되면 쉘 및 커널 기능에 의해 실행 가능한 것으로 인식됩니다 (믿습니다). 이 외에도 Linux는 신경 쓰지 않으며 대부분의 쉘은 신경 쓰지 않으며 대부분의 프로그램은 파일에서 "유형"을 찾기 위해 파일을 찾습니다.
물론 file
파일을 분석하고 확실하게 무엇인지 알려주 는 멋진 명령 이 있습니다. 파일의 데이터를 알려진 유형과 일치시킬 수 없으며 인쇄 가능한 ASCII / 유니 코드 문자 만 포함하면 텍스트 파일로 가정합니다.
아래의 @Bruce Ediger는 절대적으로 정확합니다. 커널 또는 파일 시스템 수준에는 파일 자체가 파일 이름이나 파일을 이해해야하는 프로그램과 일치해야한다는 것을 규정하는 Linux 자체가 없습니다. 이것은 파일 이름을 기반으로 작업을 수행하기 위해 쉘 또는 실행기 유틸리티를 만들 수 없다는 것을 의미하지는 않습니다.
Windows와 달리 UNIX 시스템에서는 파일 유형이 확장자에 의해 결정되지 않습니다. 파일 확장자는 단순히 사람을위한 시각적 표시기입니다. JPEG의 이름을 foo.c로 지정하고 Gimp에서 열 수 있습니다. 윈도우에서 또 다른 대조는 Windows가 자주 당신을 위해 그것을 알아서 반면 UNIX 시스템에 당신이 (예를 들면, 단지 실행, 전체 파일 이름을 사용한다는 것입니다 explorer
대 explorer.exe
). UNIX 에서는 단순히가 foo.sh
아니라로 호출해야합니다 .foo.sh
foo
관례에 따라 사람들은 공통된 확장 세트를 사용하는 경향이 있습니다. 이 관행은 불필요하지만 아마도 인류에게 큰 도움이 될 것입니다.
This practice…is probably beneficial for humanity at large
일반적으로 엄격하고 설명이 포함 된 명명 규칙을 유지하는 것이 매우 유용하다는 것을 알았습니다. 유닉스에서는 확장이 필요하지 않지만 다음 두 가지 이유로 유지합니다.
1) Windows 컴퓨터에서 해당 파일을 읽을 경우 "Open with ..."를 찾는 것보다 여는 것이 더 쉽습니다.
2) 확장 기능은 사용자가 파일이 수행하는 작업을 파악하는 데 도움이됩니다. 실습 : .txt = 텍스트 파일 .sgi = irix 컴파일 된 바이너리 .linux = linux 컴파일 된 바이너리
구형 유닉스 머신을 사용해야한다면 (우리는 여전히 IRIX를 사용합니다) * nix 머신에서 캐리지 리턴이 다르므로 Windows 캐리지 리턴으로 파일을 열려고하면 프로그램이 인식되지 않을 수 있습니다.
Intro to Unix File System 을 읽으십시오 .
몇 가지 좋은 답변이 있습니다. "질문이 리눅스에서 파일 확장자를 처리하는 방법에 대한 일반적인 자료가 유용 할 것입니다."
Linux는 항상 특정 프로그램으로 특정 확장명을 열 수 있도록 확장명을 등록 할 수 있습니다. 이 기능을 binfmt 라고 합니다 .
binfmt_misc는 Linux 커널의 기능으로, 임의의 실행 파일 형식을 인식하고 에뮬레이터 및 가상 시스템과 같은 특정 사용자 공간 응용 프로그램으로 전달할 수 있습니다. 실행 파일 형식은 특수 목적 파일 시스템 인터페이스 (/ proc와 유사)를 통해 등록됩니다. 데비안 기반 배포판은 추가적인 binfmt 지원 패키지를 통해 기능을 제공합니다.
각 형식은 / proc / sys / fs / binfmt_misc 디렉토리에 해당 파일 항목이 있으며이 파일 형식은 주어진 파일 형식에 대한 정보를 얻기 위해 읽을 수 있습니다.
.txt는 다른 응용 프로그램을 통해 열 수 있습니다. 그러나 중요한 것은 파일을 특정 유형으로 분류하는 데 사용된다는 것입니다. 인터넷 익스플로러에서 파일이 열려고하는 .html을 사용하여 동일한 파일을 저장했는지 확인할 수 있습니다. 응용 프로그램은 그러한 파일 형식을 지원하도록 만들어졌습니다. 위에서 .html을 사용하면 컴파일러는 html 속성을 찾으려고 시도하고 그에 따라 결과를 표시합니다. 다른 확장과 동일합니다. .ini 파일은 텍스트로 읽을 수 있지만 확장명은이를 구성 파일로 분류하므로 컴파일러는 텍스트 파일이 레코드 세트 일 뿐이며 특정 기능을 갖지 않기 때문에 일반 텍스트 파일이 아닌 구성 파일로 처리합니다. ini. 따라서 ini의 확장자를 텍스트로 변경하고 싶지 않습니다.