특정 애플리케이션의`.desktop` 파일 위치를 찾는 방법
편집 :이 질문은 다른 질문이 묻는 것과 반대이므로 중복이 아닙니다. 여기서 우리는 응용 프로그램이 무엇인지 알고 .desktop있으며 표준이 아닌 위치에서도 찾을 수있는 파일 을 찾고 싶습니다 . 다른 질문은 .desktop파일을 배치 할 수있는 위치에 관한 것입니다.
브라우저가 아닌 기본 이미지 뷰어에서 FTP 서버의 이미지를 열고 싶으므로 Ubuntu에서 기본 이미지 뷰어 데스크톱 파일의 경로를 알고 싶었습니다. 다음을 시도했습니다.
cd -- /usr/share/applications
/usr/share/applications
$ find . -name '*.desktop' | grep image ./gnome-disk-image-mounter.desktop ./gnome-disk-image-writer.desktop $ find . -name '*.desktop' | grep view
./calibre-ebook-viewer.desktop
./calibre-lrfviewer.desktop
./evince-previewer.desktop
./shotwell-viewer.desktop
./okularApplication_ghostview.desktop
./gcr-viewer.desktop
./gnome-info-overview-panel.desktop
./org.gnome.font-viewer.desktop
./paraview.desktop
그러나 나는 그것을 찾을 수 없었다. 데스크탑 파일이 저장되는 다른 위치가 있습니까?
답변
훨씬 빠르고 보편적 인 검색은 다음과 같은 locate명령입니다.
$ locate *image*desktop
/usr/share/app-install/desktop/gimagereader:gimagereader-gtk.desktop
/usr/share/app-install/desktop/gnome-disk-utility:gnome-disk-image-mounter.desktop
/usr/share/app-install/desktop/gnome-disk-utility:gnome-disk-image-writer.desktop
/usr/share/app-install/desktop/imagej:imagej.desktop
/usr/share/app-install/desktop/imagemagick-6.q16:display-im6.q16.desktop
/usr/share/app-install/desktop/imagemagick:display-im6.desktop
/usr/share/app-install/desktop/imagevis3d:imagevis3d.desktop
/usr/share/app-install/desktop/kimagemapeditor:kde4__kimagemapeditor.desktop
/usr/share/app-install/desktop/simple-image-reducer:simple-image-reducer.desktop
/usr/share/app-install/desktop/trimage:trimage.desktop
/usr/share/applications/gnome-disk-image-mounter.desktop
/usr/share/applications/gnome-disk-image-writer.desktop
/usr/share/applications/screensavers/tessellimage.desktop
locate몇 find분만에 수백만 개의 파일을 검색 할 수 있습니다 .
$ time find / -name '*image*.desktop'
real 0m52.563s
user 0m6.271s
sys 0m9.002s
$ time locate *image*desktop
real 0m0.705s
user 0m0.693s
sys 0m0.012s
grep원래 방법에서 제거 된 방법과 find명령이 수정 되었는지 확인하십시오 .
단점은 locate데이터베이스가 매일 업데이트 된다는 것입니다 . 오늘 검색중인 응용 프로그램을 방금 설치했다면 먼저 다음을 실행해야합니다.
sudo updatedb
desktop파일 이름 만으로는 충분한 정보가 드러나지 않을 수 있습니다. 기본적인 접근 방식은 .desktop시스템 의 모든 파일 내용을 검색 하여 관련 파일을 찾는 것입니다.
예를 들어, 이미지 뷰어는 Image Viewer애플리케이션 개요에서와 같이 표시됩니다 . Gnome Shell은 .desktop파일 에서 해당 레이블을 얻었습니다 . .desktop이 문자열을 포함 하는 파일 을 찾으려면 다음을 실행하십시오.
find / -name '*.desktop' -exec grep -H 'Image Viewer' {} \; 2>/dev/null
이것은 시스템의 find모든 .desktop파일 을 찾는 데 사용 됩니다 . 발견 된 각 파일에 대해 grep가 호출되어 파일에서 문자열을 검색합니다 (이 예에서는) Image Viewer. 은 2>/dev/null당신이 필연적으로 루트 권한이없는 루트 드라이브를 검색 얻을 권한 오류를 억제한다.
내 솔루션은 매우 쉽고 앱에서 아이콘이있는 애플리케이션을 찾는 경우 수행하는 방법입니다.
ls -la /usr/share/applications | grep <name_of_app_you_are_looking_for>
예를 들어 Ubuntu에서 일부 앱의 위치를 찾고 싶습니다 .--- Google Chrome 용 데스크톱 파일을 찾고 싶습니다.
하지만 내부 앱에서만 작동합니다. /usr/share/applications