Как я могу получить список установленных приложений (на основе файлов в / usr / share / applications /) без написания собственного парсера? Мне нужно просто имя приложения, путь к значку приложения и путь к запуску приложения.
Я использую C ++ с библиотеками Qt. Конечно, вы можете написать мне команду оболочки или что-то еще подобное.
Вот вы. Результатом следующей команды является список значений, разделенных запятыми. Первый столбец: путь к записи .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 суммируют информацию в виде запятой.
Вот вы. Результатом следующей команды является список значений, разделенных запятыми. Первый столбец: путь к записи .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 суммируют информацию в виде запятой.
Вот вы. Результатом следующей команды является список значений, разделенных запятыми. Первый столбец: путь к записи .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 суммируют информацию в виде запятой.
Вот вы. Результатом следующей команды является список значений, разделенных запятыми. Первый столбец: путь к записи .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 суммируют информацию в виде запятой.
Вот вы. Результатом следующей команды является список значений, разделенных запятыми. Первый столбец: путь к записи .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 суммируют информацию в виде запятой.
Вот вы. Результатом следующей команды является список значений, разделенных запятыми. Первый столбец: путь к записи .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 суммируют информацию в виде запятой.
Вот вы. Результатом следующей команды является список значений, разделенных запятыми. Первый столбец: путь к записи .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 суммируют информацию в виде запятой.
Вот вы. Результатом следующей команды является список значений, разделенных запятыми. Первый столбец: путь к записи .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 суммируют информацию в виде запятой.