Friday, May 10, 2024
20
rated 0 times [  20] [ 0]  / answers: 1 / hits: 161768  / 2 Years ago, wed, may 11, 2022, 7:14:46

I know, I just can hit Super+A to see all installed apps in Ubuntu, but I need a command to list their names. The command



dpkg --get-selections | awk '{print $1}'


is also not an option because it shows all installed packages and it contains drivers, kernels and libraries.


More From » command-line

 Answers
6

I came up with this answer for people who wants to use bash in a good way. It's clear that the answer of the question is related to the listing of the files from /usr/share/applications, but the problem is that ls command shouldn't be parsed ever. In the past, I was doing the same mistake, but now I learned that the best way is to use a for loop to iterate over the files, even if I must use some more keys from my precious keyboard:



for app in /usr/share/applications/*.desktop; do echo "${app:24:-8}"; done


I also used in the previous command string manipulation operations: removed from app first 24 characters which are /usr/share/applications/ and last 8 characters which are .desktop.






Update:



Another place where you can find applications shown by the Dash is ~/.local/share/applications/*.desktop. So you need to run the following command as well:



for app in ~/.local/share/applications/*.desktop; do echo "${app:37:-8}"; done


To unify the previous two commands, you can use:



for app in /usr/share/applications/*.desktop ~/.local/share/applications/*.desktop; do app="${app##/*/}"; echo "${app::-8}"; done

[#26539] Thursday, May 12, 2022, 2 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
errettas

Total Points: 160
Total Questions: 118
Total Answers: 91

Location: Laos
Member since Fri, Sep 11, 2020
4 Years ago
;