Установка шрифтов в системе Guix

Перенаправление необходимо заключать в кавычки, чтобы его не интерпретировала текущая оболочка.
Но его цитирование также позволит избежать перенаправления вывода команды.
Известным решением этого является вызов оболочки:

find. -name '*.jpg' -exec sh -c 'echo "$1" >"$1".new' called_shell '{}' \;

В этом случае перенаправление(>)указано в кавычках в текущей оболочке и корректно работает внутри вызываемой оболочки. called_shellиспользуется как $0параметр (имя )дочерней оболочки(sh).

Это хорошо работает, если к имени файла добавляется суффикс, но не при использовании префикса. Чтобы префикс работал, вам нужно как удалить ./, который находит перед именами файлов с ${1#./}, так и использовать опцию -execdir.

Вы можете (или не )использовать параметр -iname, чтобы файлы с именами *.JPGили *.JpGили другими вариантами также были включены.

find. \( -iname '*.jpg' -o -iname '*.jpeg' \) -execdir sh -c '
     cjpeg -quality 80 "$1" > optimized_"${1#./}"
     ' called_shell '{}' \;

И вы можете (или не можете )вызывать оболочку один раз для каталога, а не один раз для файла, добавив цикл(for f do … ; done+в конце:

find. \( -iname '*.jpg' -o -iname '*.jpeg' \) -execdir sh -c '
     for f; do cjpeg -quality 80 "$f" > optimized_"${f#./}"; done
     ' called_shell '{}' \+

И, наконец, поскольку cjpegможет напрямую записывать в файл, перенаправления можно было бы избежать, поскольку:

find. \( -iname '*.jpg' -o -iname '*.jpeg' \) -execdir sh -c '
     for f; do cjpeg -quality 80 "$f" -outfile optimized_"${f#./}"; done
     ' called_shell '{}' \+
1
13.01.2021, 10:17
1 ответ

Поиск шрифтов (с использованием recutilsдля фильтрации результатов, будет отображаться только название):

guix package -s font |recsel -p name

Вы можете добавить краткое описание результатов:

guix package -s font |recsel -p name,synopsis

Затем установите нужные шрифты. например,:

guix package -i font-dejavu

обновить кеш fontconfig:

guix package -i fontconfig
fc-cache -rv

Дляttf/otf:guix package -s ttfилиguix package -s font |grep ttf:

guix package -i font-gnu-freefont

Чтобы установить локальный файл шрифта, перетащите шрифт или папку со шрифтом в(/home/.local/share/fonts). Если папки fontsне существует, создайте ее!

2
18.03.2021, 22:37

Теги

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