Получение списка установленных приложений (пакетов NOT)

Как я могу получить список установленных приложений (на основе файлов в / usr / share / applications /) без написания собственного парсера? Мне нужно просто имя приложения, путь к значку приложения и путь к запуску приложения.

Я использую C ++ с библиотеками Qt. Конечно, вы можете написать мне команду оболочки или что-то еще подобное.

5
задан 18 June 2012 в 21:16

8 ответов

Вот вы. Результатом следующей команды является список значений, разделенных запятыми. Первый столбец: путь к записи .desktop, второй столбец: путь к значку, третий столбец: исполняемый файл.

find /usr/share/applications/ -name '*.desktop' -exec perl -ne 'BEGIN { $pname = $ARGV[0] ; } ; /(Icon|Exec)=(.*)/ and $ret{$1} = $2 ; END { printf "%s,%s,%s\n", $pname, $ret{Icon}, $ret{Exec} ; }' {} \;

Объяснение: find подготавливает список файлов, которые заканчиваются на .desktop и находятся в / usr / share / applications или в его подкаталоге, и вызывает (-exec ... {} \;) perl oneliner для анализа информации.

Perl запускается с опцией -n, которая создает неявный цикл итерации по каждой строке данного файла и опции -e, которая указывает на запуск предоставленного аргумента.

Программа perl содержит блоки BEGIN и END для запуска до и после каждого из файлов .desktop (perl oneliner вызывается отдельно каждый раз для каждого из файлов, расположенных find). Блок BEGIN записывает имя файла (которое дается в качестве первого аргумента в oneliner, прагме {} в find), а блоки END суммируют информацию в виде запятой.

3
ответ дан 25 July 2018 в 18:29

Вот вы. Результатом следующей команды является список значений, разделенных запятыми. Первый столбец: путь к записи .desktop, второй столбец: путь к значку, третий столбец: исполняемый файл.

find /usr/share/applications/ -name '*.desktop' -exec perl -ne 'BEGIN { $pname = $ARGV[0] ; } ; /(Icon|Exec)=(.*)/ and $ret{$1} = $2 ; END { printf "%s,%s,%s\n", $pname, $ret{Icon}, $ret{Exec} ; }' {} \;

Объяснение: find подготавливает список файлов, которые заканчиваются на .desktop и находятся в / usr / share / applications или в его подкаталоге, и вызывает (-exec ... {} \;) perl oneliner для анализа информации.

Perl запускается с опцией -n, которая создает неявный цикл итерации по каждой строке данного файла и опции -e, которая указывает на запуск предоставленного аргумента.

Программа perl содержит блоки BEGIN и END для запуска до и после каждого из файлов .desktop (perl oneliner вызывается отдельно каждый раз для каждого из файлов, расположенных find). Блок BEGIN записывает имя файла (которое дается в качестве первого аргумента в oneliner, прагме {} в find), а блоки END суммируют информацию в виде запятой.

3
ответ дан 31 July 2018 в 12:37

Вот вы. Результатом следующей команды является список значений, разделенных запятыми. Первый столбец: путь к записи .desktop, второй столбец: путь к значку, третий столбец: исполняемый файл.

find /usr/share/applications/ -name '*.desktop' -exec perl -ne 'BEGIN { $pname = $ARGV[0] ; } ; /(Icon|Exec)=(.*)/ and $ret{$1} = $2 ; END { printf "%s,%s,%s\n", $pname, $ret{Icon}, $ret{Exec} ; }' {} \;

Объяснение: find подготавливает список файлов, которые заканчиваются на .desktop и находятся в / usr / share / applications или в его подкаталоге, и вызывает (-exec ... {} \;) perl oneliner для анализа информации.

Perl запускается с опцией -n, которая создает неявный цикл итерации по каждой строке данного файла и опции -e, которая указывает на запуск предоставленного аргумента.

Программа perl содержит блоки BEGIN и END для запуска до и после каждого из файлов .desktop (perl oneliner вызывается отдельно каждый раз для каждого из файлов, расположенных find). Блок BEGIN записывает имя файла (которое дается в качестве первого аргумента в oneliner, прагме {} в find), а блоки END суммируют информацию в виде запятой.

3
ответ дан 2 August 2018 в 00:40

Вот вы. Результатом следующей команды является список значений, разделенных запятыми. Первый столбец: путь к записи .desktop, второй столбец: путь к значку, третий столбец: исполняемый файл.

find /usr/share/applications/ -name '*.desktop' -exec perl -ne 'BEGIN { $pname = $ARGV[0] ; } ; /(Icon|Exec)=(.*)/ and $ret{$1} = $2 ; END { printf "%s,%s,%s\n", $pname, $ret{Icon}, $ret{Exec} ; }' {} \;

Объяснение: find подготавливает список файлов, которые заканчиваются на .desktop и находятся в / usr / share / applications или в его подкаталоге, и вызывает (-exec ... {} \;) perl oneliner для анализа информации.

Perl запускается с опцией -n, которая создает неявный цикл итерации по каждой строке данного файла и опции -e, которая указывает на запуск предоставленного аргумента.

Программа perl содержит блоки BEGIN и END для запуска до и после каждого из файлов .desktop (perl oneliner вызывается отдельно каждый раз для каждого из файлов, расположенных find). Блок BEGIN записывает имя файла (которое дается в качестве первого аргумента в oneliner, прагме {} в find), а блоки END суммируют информацию в виде запятой.

3
ответ дан 4 August 2018 в 16:11

Вот вы. Результатом следующей команды является список значений, разделенных запятыми. Первый столбец: путь к записи .desktop, второй столбец: путь к значку, третий столбец: исполняемый файл.

find /usr/share/applications/ -name '*.desktop' -exec perl -ne 'BEGIN { $pname = $ARGV[0] ; } ; /(Icon|Exec)=(.*)/ and $ret{$1} = $2 ; END { printf "%s,%s,%s\n", $pname, $ret{Icon}, $ret{Exec} ; }' {} \;

Объяснение: find подготавливает список файлов, которые заканчиваются на .desktop и находятся в / usr / share / applications или в его подкаталоге, и вызывает (-exec ... {} \;) perl oneliner для анализа информации.

Perl запускается с опцией -n, которая создает неявный цикл итерации по каждой строке данного файла и опции -e, которая указывает на запуск предоставленного аргумента.

Программа perl содержит блоки BEGIN и END для запуска до и после каждого из файлов .desktop (perl oneliner вызывается отдельно каждый раз для каждого из файлов, расположенных find). Блок BEGIN записывает имя файла (которое дается в качестве первого аргумента в oneliner, прагме {} в find), а блоки END суммируют информацию в виде запятой.

3
ответ дан 6 August 2018 в 00:49

Вот вы. Результатом следующей команды является список значений, разделенных запятыми. Первый столбец: путь к записи .desktop, второй столбец: путь к значку, третий столбец: исполняемый файл.

find /usr/share/applications/ -name '*.desktop' -exec perl -ne 'BEGIN { $pname = $ARGV[0] ; } ; /(Icon|Exec)=(.*)/ and $ret{$1} = $2 ; END { printf "%s,%s,%s\n", $pname, $ret{Icon}, $ret{Exec} ; }' {} \;

Объяснение: find подготавливает список файлов, которые заканчиваются на .desktop и находятся в / usr / share / applications или в его подкаталоге, и вызывает (-exec ... {} \;) perl oneliner для анализа информации.

Perl запускается с опцией -n, которая создает неявный цикл итерации по каждой строке данного файла и опции -e, которая указывает на запуск предоставленного аргумента.

Программа perl содержит блоки BEGIN и END для запуска до и после каждого из файлов .desktop (perl oneliner вызывается отдельно каждый раз для каждого из файлов, расположенных find). Блок BEGIN записывает имя файла (которое дается в качестве первого аргумента в oneliner, прагме {} в find), а блоки END суммируют информацию в виде запятой.

3
ответ дан 7 August 2018 в 18:14

Вот вы. Результатом следующей команды является список значений, разделенных запятыми. Первый столбец: путь к записи .desktop, второй столбец: путь к значку, третий столбец: исполняемый файл.

find /usr/share/applications/ -name '*.desktop' -exec perl -ne 'BEGIN { $pname = $ARGV[0] ; } ; /(Icon|Exec)=(.*)/ and $ret{$1} = $2 ; END { printf "%s,%s,%s\n", $pname, $ret{Icon}, $ret{Exec} ; }' {} \;

Объяснение: find подготавливает список файлов, которые заканчиваются на .desktop и находятся в / usr / share / applications или в его подкаталоге, и вызывает (-exec ... {} \;) perl oneliner для анализа информации.

Perl запускается с опцией -n, которая создает неявный цикл итерации по каждой строке данного файла и опции -e, которая указывает на запуск предоставленного аргумента.

Программа perl содержит блоки BEGIN и END для запуска до и после каждого из файлов .desktop (perl oneliner вызывается отдельно каждый раз для каждого из файлов, расположенных find). Блок BEGIN записывает имя файла (которое дается в качестве первого аргумента в oneliner, прагме {} в find), а блоки END суммируют информацию в виде запятой.

3
ответ дан 10 August 2018 в 06:59

Вот вы. Результатом следующей команды является список значений, разделенных запятыми. Первый столбец: путь к записи .desktop, второй столбец: путь к значку, третий столбец: исполняемый файл.

find /usr/share/applications/ -name '*.desktop' -exec perl -ne 'BEGIN { $pname = $ARGV[0] ; } ; /(Icon|Exec)=(.*)/ and $ret{$1} = $2 ; END { printf "%s,%s,%s\n", $pname, $ret{Icon}, $ret{Exec} ; }' {} \;

Объяснение: find подготавливает список файлов, которые заканчиваются на .desktop и находятся в / usr / share / applications или в его подкаталоге, и вызывает (-exec ... {} \;) perl oneliner для анализа информации.

Perl запускается с опцией -n, которая создает неявный цикл итерации по каждой строке данного файла и опции -e, которая указывает на запуск предоставленного аргумента.

Программа perl содержит блоки BEGIN и END для запуска до и после каждого из файлов .desktop (perl oneliner вызывается отдельно каждый раз для каждого из файлов, расположенных find). Блок BEGIN записывает имя файла (которое дается в качестве первого аргумента в oneliner, прагме {} в find), а блоки END суммируют информацию в виде запятой.

3
ответ дан 15 August 2018 в 18:57

Другие вопросы по тегам:

Похожие вопросы: