MIME 유형 대신 파일 이름을 기반으로 기본 애플리케이션 설정

MIME 유형 대신 파일 이름을 기반으로 기본 애플리케이션 설정

이름을 기반으로 파일을 여는 애플리케이션을 정의하고 싶습니다.

예를 들어, 숭고한 또는 원자로 열리거나 Gemfile라는 파일을 원합니다 .Dockerfile

MIME 유형을 사용할 수 있다는 것을 알고 있지만 두 파일 모두 text/plain.

아니면 무언극 장르가 있나요 Gemfile?

답변1

파일 이름 기반 일치는 MIME 유형을 정의하는 가장 간단한 방법 중 하나입니다. Gemfiles 또는 Dockerfiles에 대한 공식 MIME 유형은 없지만 살펴보면 많은 비공식 MIME 유형이 , 또는 와 같이 일반적으로 이름이 지정되어 있음 /usr/share/mime/packages/ 을 알 수 있습니다 .<sub-class-of type="text/plain"/>text/x-*text/x-pythontext/x-markdown

사용자 정의 MIME 유형을 추가하는 것은 일반적으로 간단합니다. 특히 파일 이름만 사용할 수 있는 경우에는 더욱 그렇습니다.

현재 mimetype을 관찰하면 DockerfileGemfile다 다음과 같습니다 text/plain.

$ xdg-mime query filetype Dockerfile 
text/plain
$ xdg-mime query filetype Gemfile 
text/plain

또는이라는 text/x-dockerfile파일에 대한 새 MIME 유형을 생성 하고 파일에 대한 새 MIME 유형을 생성합니다. 이렇게 하려면 다음 내용으로 이름이 지정된 XML 파일을 만듭니다.Dockerfile*.dockerfiletext/x-gemfileGemfilex-dockerfile.xml

<?xml version="1.0"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
    <mime-type type="text/x-dockerfile">
        <comment>Dockerfile</comment>
        <sub-class-of type="text/plain"/>
        <glob pattern="Dockerfile"/>
        <glob pattern="*.dockerfile"/>
    </mime-type>
</mime-info>

그리고 x-gemfile.xml다음 내용으로 이름이 지정된 또 다른 파일은 다음과 같습니다.

<?xml version="1.0"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
    <mime-type type="text/x-gemfile">
        <comment>Gemfile</comment>
        <sub-class-of type="text/plain"/>
        <glob pattern="Gemfile"/>
    </mime-type>
</mime-info>

다음으로 mimetype을 설치합니다. 로컬 사용자의 경우 다음 명령을 실행합니다.

xdg-mime install --mode user x-dockerfile.xml
xdg-mime install --mode user x-gemfile.xml
update-mime-database ~/.local/share/mime

시스템 전체에 설치하려면 다음 명령을 실행하십시오.

xdg-mime install --mode system x-dockerfile.xml
xdg-mime install --mode system x-gemfile.xml
update-mime-database /usr/share/mime

감지된 MIME 유형이 이제 변경된 것을 확인했습니다.

$ xdg-mime query filetype Dockerfile 
text/x-dockerfile
$ xdg-mime query filetype Gemfile
text/x-gemfile

이제 원하는 텍스트 편집기에 할당할 수 있습니다.

관련 정보