리눅스는 처리 중인 파일의 유형을 어떻게 알 수 있습니까? [복사]

리눅스는 처리 중인 파일의 유형을 어떻게 알 수 있습니까? [복사]

Windows에서 운영 체제는 exe, doc, ppt, pdf...등의 확장자를 사용하여 파일 형식을 인식합니다.

우리가 알고 있듯이 Linux에서는 확장 기능이 쓸모가 없습니다.

내 질문은 Linux가 쉘 스크립트, 오디오 파일, 비디오 파일 등 어떤 파일 형식을 처리하는지 어떻게 알 수 있습니까? 아니면 모든 파일을 동일한 방식으로 처리합니까?

답변1

파일 확장자는 Linux 배포판에서 쓸모가 없으며 종종 필요하지 않은 바로 가기일 뿐입니다. Linux는 파일 확장자를 본질적으로 불필요하게 만드는 도구를 사용합니다. 첫 번째이자 아마도 가장 분명한 것은 셔뱅( #!)입니다.

이것셰르본셸에 의해 실행되는 스크립트 상단에 있는 줄로, 셸을 실행하는 데 무엇을 사용해야 하는지 알려줍니다. 예를 들어, bash 스크립트에 포함할 표준 줄은 다음과 같습니다.

#!/usr/bin/bash

이 줄은 스크립트의 내용이 에 있는 유틸리티에 의해 실행되어야 함을 쉘에 알려줍니다 /usr/bin/bash. 그러나 shebang은 실제로 실행 가능한 프로젝트에만 도움이 됩니다.

최신 애플리케이션에서 널리 사용되는 다음 도구는 MIME 유형입니다.마임 유형웹 브라우저와 이메일 클라이언트가 어떤 유형의 파일이 전송되고 있는지 알 수 있도록 인터넷에서 널리 사용되는 파일 유형 선언입니다. 그러나 많은 프로그램은 이들 유형을 사용하여 무엇을 해야 할지 알기 위해 이러한 유형에 의존합니다(예를 들어 .desktopX용 파일에는 특정 프로그램과의 파일 유형 연결을 선언하는 mimetype 줄이 포함될 수 있습니다).

마지막으로 휴리스틱을 통한 MIME 유형 감지를 위해 C 라이브러리와 명령줄 프런트 엔드가 개발되었습니다. 그들은 각각 libmagic및 입니다 file.Libmagic과file명시적으로 명시되지 않은 경우에도 프로그램이나 사용자가 파일의 MIME 유형을 감지할 수 있습니다.


물론, shebang은 최신 운영 체제에서 파일 형식을 결정하는 데 훨씬 작은 역할을 하지만 여전히 스크립팅 세계에서 널리 사용되고 있으며 확실히 여전히 방정식의 일부입니다.

$HOME/.local/share/applications/mimeapps.list일부 파일 형식 연결은 X의 mimetypes 선언을 통해 파일(예:) 에서 찾을 수 있습니다 .

답변2

유형

% man file

기본적으로 대부분의 파일 형식 디자이너는 형식을 식별하기 위해 처음 4자 정도를 예약합니다.

magic number이러한 문자를 파일 문자 라고 합니다 .

Windows나 Mac과 달리 Unix에는 파일 연결이 없다는 점을 기억하세요.

실행 파일은 내부 플래그("x")로 식별됩니다.

주문하다

ls -l

그 표시를 보여줍니다.

관련 정보