Saya datang dengan jawaban ini untuk orang-orang yang ingin menggunakan bash dengan cara yang baik. Jelas bahwa jawaban pertanyaan terkait dengan daftar file dari /usr/share/applications
, tetapi masalahnya adalah bahwa ls
perintah tidak boleh diuraikan . Di masa lalu, saya melakukan kesalahan yang sama, tetapi sekarang saya belajar bahwa cara terbaik adalah menggunakan for
perulangan untuk beralih ke file, bahkan jika saya harus menggunakan beberapa tombol lagi dari keyboard saya yang berharga:
for app in /usr/share/applications/*.desktop; do echo "${app:24:-8}"; done
Saya juga digunakan dalam operasi manipulasi string perintah sebelumnya : dihapus dari app
24 karakter pertama /usr/share/applications/
dan 8 karakter terakhir .desktop
.
Memperbarui:
Tempat lain di mana Anda dapat menemukan aplikasi yang ditunjukkan oleh Dash adalah ~/.local/share/applications/*.desktop
. Jadi, Anda perlu menjalankan perintah berikut juga:
for app in ~/.local/share/applications/*.desktop; do echo "${app:37:-8}"; done
Untuk menyatukan dua perintah sebelumnya, Anda dapat menggunakan:
for app in /usr/share/applications/*.desktop ~/.local/share/applications/*.desktop; do app="${app##/*/}"; echo "${app::-8}"; done
zsh
,zsh-common
dan lainnya!--no-gui
dihapus.--no-gui
bagian itu, sepertinya tidak ada di sana untuk apa yang kupikirkan.Jalankan perintah di bawah ini untuk melihat semua aplikasi yang diinstal,
Jika Anda ingin mendapatkan daftar semua aplikasi yang diinstal, maka jalankan perintah di bawah ini,
Ini akan menyimpan output perintah di atas ke
applications.txt
file di dalam~/Desktop
direktori Anda .ATAU
Jalankan juga perintah di bawah ini pada terminal untuk mendaftar aplikasi yang diinstal,
Untuk mendapatkan daftar dalam file teks, jalankan perintah di bawah ini
Entri desktop untuk semua aplikasi yang diinstal disimpan di dalam
/usr/share/applications
direktori, di mana nama file dalam formatapplication-name.desktop
.Menghapus.desktop
bagian dari nama file akan memberi Anda daftar total aplikasi yang diinstal.Memperbarui:
Seperti yang disarankan @Radu , Anda juga dapat menemukan entri desktop untuk aplikasi tambahan yang diinstal di dalam
~/.local/share/applications
direktori.sumber
ls
perintah seharusnya tidak diuraikan !ls
- untuk tujuan representasional dan untuk tugas-tugas non-kritis seperti yang di atas - dan mencoba untuk mengingat keterbatasan ini, terima kasih atas up!Jika Anda membutuhkan daftar aplikasi yang ditampilkan ketika Anda menekan Super+ A, Anda dapat menggunakan
ls /usr/share/applications
. Satu-satunya hal yang harus Anda lakukan adalah mengganti.desktop
ending yang merupakan tugas yang cukup sederhana. Saya melakukannya dengansed
:Tetapi Anda dapat melakukannya setelah Anda menerima daftar menggunakan editor teks.
sumber
ls
perintah seharusnya tidak diuraikan !/usr/share/application/*.desktop
file tidak mengandung karakter khusus, jadi penguraianls
khususnya dalam hal ini diperbolehkan.bad name.desktop
misalnya? Tidak ada alasan untuk mengambil risiko dils
sini.Tidak yakin mengapa sebagian besar jawaban yang diposting melibatkan mengekstraksi nama file pintasan .desktop. Nama file pintas .desktop Anda bisa apa saja tetapi yang penting adalah
Name
bidang di dalam file pintasan. Jika Anda ingin membuat daftar nama aplikasi terpasang yang ditampilkan di Dash, cukup "ambil" bidang itu di bawah[Desktop Entry]
Kode percobaan, dengan bash
Tapi ini tidak memperhitungkan pintasan akun yang disembunyikan dari yang ditampilkan di Dash. Seseorang dengan pemahaman yang lebih baik tentang .desktop spec mungkin ingin memperluas kode ini untuk mengecualikan mereka yang agak pintas
Sunting: upaya lain, dengan Python
sumber
Name
entri di .desktop yang Anda uraikan, yang selalu menjadi masalah. Anda juga tidak boleh berasumsi bahwa semua saluran yang Anda minati akan berada pada nomor telepon tetapName
opsi bisa berada di luar rentang nomor baris itu, terutama dengan banyak opsi atau baris kosong di bawahnya[Desktop\ Entry ]
. Dan file .desktop adalah file iniPenanya ingin membuat daftar nama semua "aplikasi" yang diinstal.
Mengenai aplikasi dengan file .desktop :
/usr/share/applications
~/.local/share/applications
Name=
baris dalam file .desktop masing-masing. Salah satu contoh adalah "Peta Karakter".Exec=
. Dalam kasus "Peta Karakter", itu akan menjadigucharmap
.sed -ns '1F;/^\[Desktop Entry\]/,/^\[/{/^Name=/p;/^Exec=/h};${z;x;G;p}' /usr/share/applications/*.desktop
sed -ns '1F;/^\[Desktop Entry\]/,/^\[/{/^Name=/p;/^Exec=/h};${z;x;G;p}' $HOME/.local/share/applications/*.desktop
Mengenai aplikasi tanpa file .desktop :
Bergantung pada bagaimana seseorang mendefinisikan "aplikasi", beberapa tidak memiliki file .desktop.
conky
,poppler-utils
,qpdf
,xdotool
danwmctrl
dianggap "aplikasi"? Bagaimana cara mengidentifikasi dan mendaftar dengan nama mereka (dengan asumsi seseorang telah menginstalnya)?awk
,find
,grep
,ls
dansed
untuk nama lagi? Apakah itu aplikasi atau bukan?Jika sesuatu yang memiliki perintah dianggap sebagai aplikasi, maka perintah Linux untuk mendaftar semua perintah dan alias yang tersedia dan jawaban ini akan membantu mengidentifikasi mereka.
sumber