텍스트 파일에 어떤 확장자를 사용해야합니까? (유닉스 / 리눅스)


20

확장명없이 텍스트 파일을 읽을 수 있음을 알았습니다 .txt. 어떻게 오세요? .txt확장자 가 있거나없는 파일을 저장해야합니까 ?

또한 .ini파일은 어떻습니까? 나는 보통 다음과 같이 사용합니다 : config.ini, 여기서 확장을 제거해야합니까?

리눅스가 파일 확장자를 처리하는 방법에 대한 일반적인 자료는 유용 할 것입니다.

답변:


37

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 자체가 없습니다. 이것은 파일 이름을 기반으로 작업을 수행하기 위해 쉘 또는 실행기 유틸리티를 만들 수 없다는 것을 의미하지는 않습니다.


7
멋진 이름의 파일은 글 로빙으로 다른 파일과 쉽게 구별 할 수 있기 때문에 콘솔에서 많이 작업하는 경우에도 유용합니다.
lynxlynxlynx

9
Linux 파일 이름에는 "확장자"가 없습니다. 파일 이름을 포함하는 파일 이름의 ".txt"부분은 단순히 하위 문자열입니다. 또한 내부 파일 구성 (LF로 끝나는 문자열, CR-LF로 끝나는 문자열, 고정 크기 레코드 등)은 이름과 희미하게 관련이 없으며 이름으로 파일과 관련된 파일을 알고있는 "앱"도 강조해야합니다. .
Bruce Ediger

2
DOS의 FAT16 8.3 디렉토리 항목에만 확장을위한 별도의 3 바이트 필드가 있다고 생각합니다. FAT32는 호환성을 위해 8.3 필드를 유지했지만 실제 "긴 파일 이름"은 별도의 확장자 필드가없는 문자열이며 여러 디렉토리 항목으로 분할됩니다 ( fandecheng.com/personal/interests/ewindows/nuhelp/lfnspec.htm )
LawrenceC

23

Windows와 달리 UNIX 시스템에서는 파일 유형이 확장자에 의해 결정되지 않습니다. 파일 확장자는 단순히 사람을위한 시각적 표시기입니다. JPEG의 이름을 foo.c로 지정하고 Gimp에서 열 수 있습니다. 윈도우에서 또 다른 대조는 Windows가 자주 당신을 위해 그것을 알아서 반면 UNIX 시스템에 당신이 (예를 들면, 단지 실행, 전체 파일 이름을 사용한다는 것입니다 explorerexplorer.exe). UNIX 에서는 단순히가 foo.sh아니라로 호출해야합니다 .foo.shfoo

관례에 따라 사람들은 공통된 확장 세트를 사용하는 경향이 있습니다. 이 관행은 불필요하지만 아마도 인류에게 큰 도움이 될 것입니다.


7
This practice…is probably beneficial for humanity at large
Ulrich Dangel

패키징 다양성이 너무 나쁘면 적절한 마임 처리가 때로는 어렵습니다 (예 : KDE에서 경험을 통해). 왜 프로그램이 매직 바이트를 확인하는 데 실패했는지는 모르겠습니다.
lynxlynxlynx

3
"매직"바이트가 없기 때문입니다. 그것은 "높은 확실성으로 신뢰성있게 탐지 될 수 있도록 충분히 잘 문서화되고 구조화 된 모든 알려진 파일 형식"의 줄임말입니다. 텍스트 또는 컨테이너 파일에 매우 효과적입니다. 원시 또는 알 수없는 데이터 유형에 대해서는 일반적으로 비참하게 실패합니다.
bahamat

1
@bahamat 바이트는 아니지만 파일에 포함 된 내용을 정의 하는 " 마법 번호 " 라고하는 파일의 일부가 있습니다. 그것은 무엇 file명령을 찾고있다. ( #!예를 들어 sh 스크립트의 마법 번호입니다)
Izkata

1
@lzkata는 내가 말한 것처럼 "높은 확실성으로 확실하게 탐지 될 수 있도록 충분히 잘 문서화되고 구조화 된 알려진 파일 형식"입니다.
bahamat

7

일반적으로 엄격하고 설명이 포함 된 명명 규칙을 유지하는 것이 매우 유용하다는 것을 알았습니다. 유닉스에서는 확장이 필요하지 않지만 다음 두 가지 이유로 유지합니다.

1) Windows 컴퓨터에서 해당 파일을 읽을 경우 "Open with ..."를 찾는 것보다 여는 것이 더 쉽습니다.

2) 확장 기능은 사용자가 파일이 수행하는 작업을 파악하는 데 도움이됩니다. 실습 : .txt = 텍스트 파일 .sgi = irix 컴파일 된 바이너리 .linux = linux 컴파일 된 바이너리

구형 유닉스 머신을 사용해야한다면 (우리는 여전히 IRIX를 사용합니다) * nix 머신에서 캐리지 리턴이 다르므로 Windows 캐리지 리턴으로 파일을 열려고하면 프로그램이 인식되지 않을 수 있습니다.



3

몇 가지 좋은 답변이 있습니다. "질문이 리눅스에서 파일 확장자를 처리하는 방법에 대한 일반적인 자료가 유용 할 것입니다."

Linux는 항상 특정 프로그램으로 특정 확장명을 열 수 있도록 확장명을 등록 할 수 있습니다. 이 기능을 binfmt 라고 합니다 .

binfmt_misc는 Linux 커널의 기능으로, 임의의 실행 파일 형식을 인식하고 에뮬레이터 및 가상 시스템과 같은 특정 사용자 공간 응용 프로그램으로 전달할 수 있습니다. 실행 파일 형식은 특수 목적 파일 시스템 인터페이스 (/ proc와 유사)를 통해 등록됩니다. 데비안 기반 배포판은 추가적인 binfmt 지원 패키지를 통해 기능을 제공합니다.

각 형식은 / proc / sys / fs / binfmt_misc 디렉토리에 해당 파일 항목이 있으며이 파일 형식은 주어진 파일 형식에 대한 정보를 얻기 위해 읽을 수 있습니다.


-2

.txt는 다른 응용 프로그램을 통해 열 수 있습니다. 그러나 중요한 것은 파일을 특정 유형으로 분류하는 데 사용된다는 것입니다. 인터넷 익스플로러에서 파일이 열려고하는 .html을 사용하여 동일한 파일을 저장했는지 확인할 수 있습니다. 응용 프로그램은 그러한 파일 형식을 지원하도록 만들어졌습니다. 위에서 .html을 사용하면 컴파일러는 html 속성을 찾으려고 시도하고 그에 따라 결과를 표시합니다. 다른 확장과 동일합니다. .ini 파일은 텍스트로 읽을 수 있지만 확장명은이를 구성 파일로 분류하므로 컴파일러는 텍스트 파일이 레코드 세트 일 뿐이며 특정 기능을 갖지 않기 때문에 일반 텍스트 파일이 아닌 구성 파일로 처리합니다. ini. 따라서 ini의 확장자를 텍스트로 변경하고 싶지 않습니다.


6
Windows의 경우도 있지만 (다른 답변에서 설명했듯이) 이것은 UN * X-ish 운영 체제와 관련이 없습니다.
Piskvor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.