CLI 도구를 사용하여 Linux 시스템에서 MIME 연결을 완전히 제거하는 방법은 무엇입니까?

CLI 도구를 사용하여 Linux 시스템에서 MIME 연결을 완전히 제거하는 방법은 무엇입니까?

저는 Arch Linux와 KDE를 실행하고 있습니다. 여러 장치에 Arch KDE를 설치했는데 일반적으로 파일에 특정 MIME 유형 .pub(내 경우에는 공개 키)이 연결되어 있지 않습니다. 일반 텍스트 문서의 기본 처리기에 의해 열립니다. 이것이 표준 Arch Linux 설치에서 볼 수 있을 것으로 예상되는 것입니다:

$ xdg-mime query filetype id_rsa_test.pub
text/plain

그러나 내 기본 데스크톱에서는 .pub파일이 ms-publisher와 연결되어 있습니다.

$ xdg-mime query filetype id_rsa_test.pub
application/vnd.ms-publisher

이 연결을 완전히 제거하고 싶습니다. 이 연관성에 대한 증거를 찾은 곳은 다음과 같습니다.

$ grep -irl '.pub' ./.local/share/mime/
./.local/share/mime/packages/application-vnd.ms-publisher.xml
./.local/share/mime/application/vnd.ms-publisher.xml
./.local/share/mime/globs
./.local/share/mime/globs2
./.local/share/mime/types
./.local/share/mime/mime.cache

$ sudo grep -irl 'ms-publisher' /usr
/usr/share/applications/mimeinfo.cache
/usr/share/mime/packages/freedesktop.org.xml
/usr/share/mime/application/vnd.ms-publisher.xml
/usr/share/mime/globs
/usr/share/mime/globs2
/usr/share/mime/subclasses
/usr/share/mime/types
/usr/share/mime/mime.cache
/usr/share/icons/breeze/mimetypes/64/application-vnd.ms-publisher.svg
/usr/share/icons/breeze/mimetypes/22/application-vnd.ms-publisher.svg
/usr/share/icons/breeze/breeze-icons.rcc
/usr/share/icons/breeze/icon-theme.cache
/usr/share/icons/breeze-dark/mimetypes/22/application-vnd.ms-publisher.svg
/usr/share/icons/breeze-dark/breeze-icons-dark.rcc
/usr/share/icons/breeze-dark/icon-theme.cache
/usr/lib/libreoffice/share/xdg/draw.desktop

xdg-mime매뉴얼 페이지 에 따르면 이 uninstall명령이 작동할 수도 있습니다. 이 명령은 적어도 내 경우에는 uninstall효과가 없습니다 .

# xdg-mime uninstall /usr/share/mime/application/vnd.ms-publisher.xml
# echo $?
0

# sudo grep -irl 'ms-publisher' /usr
/usr/share/file/misc/magic.mgc
/usr/share/applications/mimeinfo.cache
/usr/share/mime/packages/freedesktop.org.xml
/usr/share/mime/application/vnd.ms-publisher.xml
/usr/share/mime/globs
/usr/share/mime/globs2
/usr/share/mime/subclasses
/usr/share/mime/types
/usr/share/mime/mime.cache
/usr/share/icons/breeze/mimetypes/64/application-vnd.ms-publisher.svg
/usr/share/icons/breeze/mimetypes/22/application-vnd.ms-publisher.svg
/usr/share/icons/breeze/breeze-icons.rcc
/usr/share/icons/breeze/icon-theme.cache
/usr/share/icons/breeze-dark/mimetypes/22/application-vnd.ms-publisher.svg
/usr/share/icons/breeze-dark/breeze-icons-dark.rcc
/usr/share/icons/breeze-dark/icon-theme.cache
/usr/lib/libreoffice/share/xdg/draw.desktop

# grep -irl '.pub' /usr/share/mime/
/usr/share/mime/packages/freedesktop.org.xml
/usr/share/mime/packages/calibre-mimetypes.xml
/usr/share/mime/application/pkcs7-mime.xml
/usr/share/mime/application/pkcs8-encrypted.xml
/usr/share/mime/application/epub+zip.xml
/usr/share/mime/application/x-pkcs7-certificates.xml
/usr/share/mime/application/pkcs8.xml
/usr/share/mime/application/pkcs10.xml
/usr/share/mime/application/pkcs12.xml
/usr/share/mime/application/vnd.ms-publisher.xml
/usr/share/mime/globs
/usr/share/mime/globs2
/usr/share/mime/magic
/usr/share/mime/subclasses
/usr/share/mime/types
/usr/share/mime/generic-icons
/usr/share/mime/mime.cache

내 질문에 대한 개요를 알고 싶습니다.제거 방법어느내 시스템에서 MIME 유형 연결을 수행하려면 CLI 도구만 사용하세요.

편집: 답변에 답장:

새 사용자 계정에 다음이 표시됩니다.

sudo pacman -Qs shared-mime-info
local/shared-mime-info 1.15-2
    Freedesktop.org Shared MIME Info

$ xdg-mime query filetype id_rsa_test.pub
text/plain

$ xdg-mime query default text/plain
atom.desktop

$ less ~/.config/mimeapps.list
/home/deleteme/.config/mimeapps.list: No such file or directory

시스템은 매일 여러 번 업데이트되었으며 .pub파일과의 ms-publisher 연결은 복원되지 않았습니다. 시스템이 shared-mime-info설치되었으며 예상대로 일반 텍스트 편집기를 사용하여 공개 키 파일을 열 수 있습니다. 이 시스템의 다른 사용자 계정에는 ~/.config/mimeapps.list해당 사용자 항목을 통해 내가 선호하는 연결이 있습니다.

$ xdg-mime query default text/plain
org.kde.kate.desktop

주요 질문으로 돌아가서: .pub시스템 수준에서 Okular 및/또는 Libre Office Draw와의 파일 연결을 완전히 제거하려면 어떻게 해야 합니까? 승인된 방법이 아닌데 어떻게 해야 하나요?

답변1

.pub 파일은 일반 텍스트 문서의 기본 처리기에 의해 열립니다. 이것이 표준 Arch Linux에서 볼 수 있을 것으로 기대했던 것입니다.

가지다아니요이것을 기대해야 하는 이유. 이 패키지는 Microsoft 게시자 문서로 shared-mime-info간주됩니다 . .pub기본값이 되어야 한다고 생각한다면 plain/text이를 업스트림에 보고해야 합니다.

나는 개인적으로 이것이 실수라고 생각하며 GNU/Linux 기본 파일 확장자보다 M$ 독점 형식 확장자를 우선시해서는 안 됩니다. 아니면 더 나은 사용마법또한전반적인 상황

CLI 도구만 사용하여 시스템에서 MIME 유형 연결을 제거하는 방법을 알고 싶습니다.

시스템 전체의 MIME 유형 연결을 전혀 제거해서는 안 됩니다. 성공하더라도 시스템 업데이트로 다시 돌아올 것입니다.

당신이 해야 할 일은 시스템 유형을 재정의하기 위해 자신만의 MIME 유형을 추가하는 것입니다. 다른 질문에서 이미 알고 있듯이여기, 당신은 그것을 사용할 수 있습니다전역적으로 모두 삭제이전 정의 덮어쓰기

답변2

시스템의 시스템 전체 기본 MIME 연결은 다음에 의해 결정됩니다.

/usr/share/mime/packages/freedesktop.org.xml.

따라서 시스템에서 불쾌한 마임 유형을 완전히 잊어버리게 하려면 해당 부분을 삭제해야 합니다.

<mime-type type="application/vnd.ms-publisher">...</mime-type>

이 파일에서 다음을 실행하십시오.

sudo update-mime-database /usr/share/mime

이후. "CLI 도구를 사용하여" XML 파일을 편집하는 방법은 또 다른 질문입니다. :)

Munzir Taha는 또 다른 문제를 분명히 지적했습니다.

나중에 시스템 업데이트로 다시 돌아오겠습니다

그리고 최종 솔루션 - i(불변) 속성:

sudo chattr +i /usr/share/mime/packages/freedesktop.org.xml.

Arch Linux에서는 다음과 같은 경고가 표시됩니다.팩맨이 파일은 업그레이드할 수 없지만 전체 업그레이드 프로세스를 중단하지는 않습니다.

답변3

더 쉬운 방법이 있습니다.

Dolphin에 대해서는 모르지만 XFCE용 Thunar에서 파일을 마우스 오른쪽 버튼으로 클릭합니다. >다음으로 열기>기본 애플리케이션 설정, 아래에권장 애플리케이션, 애플리케이션 이름을 마우스 오른쪽 버튼으로 클릭하고연관성을 잊어버리다.

여기에 이미지 설명을 입력하세요.

또는 더 쉽습니다. ~/.config/mimeapps.list를 수동으로 편집하고 아래에 앱 이름을 추가하세요.[연결 제거]. 이것이 실제로 위에서 언급한 프로세스가 수행하는 작업입니다.

관련 정보