Все Ваши ассоциации файлов хранятся в $HOME/.local/share/applications/mimeapps.list
. Некоторые из них не находятся в Вашем персональном mimeapps.list
файл. Существует файл в масштабе всей системы со всеми ассоциациями по умолчанию в /usr/share/applications/mimeapps.list
и/или в /usr/share/applications/defaults.list
.
Поскольку больше информации проверяет Specifications/mime-actions-spec
Править:
В Fedora 14 у меня есть эти файлы настроек:
/var/lib/gdm/.local/share/applications/mimeapps.list
/usr/share/applications/defaults.list
/usr/local/share/applications/defaults.list
$HOME/.local/share/applications/defaults.list
$HOME/.local/share/applications/mimeapps.list
Нет встроенного способа сделать это, что я смог найти. Можно всегда генерировать аргументы в цикле как это:
$ printf '[ -d %s ] || mkdir %s; cd %s\n' `for run in {1..3}; do echo "$dir";done`
Небольшое различие:
$ printf '[ -d %s ] || mkdir %s; cd %s\n' $(for run in {1..3}; do echo "$dir";done)
Можно управлять количеством аргументов путем изменения этой части команды {1..3}
.
$ printf '[ -d %s ] || mkdir %s; cd %s\n' $(seq 1 3 | { xargs -i -- echo "$dir"; })
Это создаст seq чисел, 1 - 3, и это управляет сколько раз {xargs-i...} выполнится.
Благодаря комментарию @rici можно также использовать эту конструкцию, yes ... | head -n 3
:
$ printf '[ -d %s ] || mkdir %s; cd %s\n' $(yes "$dir" | head -n 3)
Printf в bash не имеет этой опции.
Но простое решение - использовать переменные:
$ a=a b=b c=c
$ printf '%s %s %s %s %s %s %s\n' "$a" "$c" "$a" "$c" "$b" "$c" "$a"
a c a c b c a
Или даже позиционные параметры:
$ set -- a b c
$ printf '%s %s %s %s %s %s %s\n' "$1" "$3" "$1" "$3" "$2" "$3" "$1"
a c a c b c a
$(yes "blah" | head -n 3)'. But neither that nor your answer will work if
вздор' содержит$IFS
Жемчуг Альтернативы персонажи. – rici 05.07.2013, 19:42yes ... | head ...
создать. Я пробовал что-тоseq ... | { xargs ... }
то, которое подобно, но Ваш, более компактно. – slm♦ 05.07.2013, 19:55