Это зависит полностью и полностью на методе передачи.
rsync
сохранит полномочия с -p
, владение с -o
(использование числового идентификатора, только если Вы передаете --numeric-ids
). -a
объединения -rlopt
, если Вы не инвертируете его с --no-o
или --no-p
.
scp
не будет обычно сохранять полномочия, но будете, если Вы передадите -p
.
cp
имеет примерно те же флаги (-p
для полномочий, -a
для всего и рекурсивно вызывающий).
tar
имеет -p
флаг также.
cpio
будет всегда сохранять полномочия.
На быстром взгляде это похоже на подлинную fontconfig ошибку мне, так как это работает правильно здесь, и у меня действительно есть и DejaVu и Unifont установленными:
$ fc-match Sans
DejaVuSans.ttf: "DejaVu Sans" "Book"
$ fc-match "Sans"
DejaVuSans.ttf: "DejaVu Sans" "Book"
$ fc-match "Sans "
DejaVuSans.ttf: "DejaVu Sans" "Book"
$ fc-match "Sans 9"
DejaVuSans.ttf: "DejaVu Sans" "Book"
Но на более внимательном рассмотрении мы видим еще некоторые детали. Все еще может быть fontconfig ошибка где-нибудь, но fc-match
по-видимому, возвращает значение по умолчанию, когда оно ничего не находит. Это - просто значение по умолчанию, DejaVu в моей системе:
$ fc-match uni
DejaVuSans.ttf: "DejaVu Sans" "Book"
$ fc-match unifont
Unifont.ttf: "unifont" "Medium"
$ fc-match 4e5zedrkbxp
DejaVuSans.ttf: "DejaVu Sans" "Book"
Страница справочника fc-match(1)
подтверждает, что команда не делает точного соответствия, но возвращает то, что это думает, лучшие соответствия. Вы видите их всех с -a
или более краткое -s
:
$ fc-match -s uni # now it also finds unifont
DejaVuSans.ttf: "DejaVu Sans" "Book"
DejaVuSans-Bold.ttf: "DejaVu Sans" "Bold"
DejaVuSans-Oblique.ttf: "DejaVu Sans" "Oblique"
DejaVuSans-BoldOblique.ttf: "DejaVu Sans" "Bold Oblique"
n019003l.pfb: "Nimbus Sans L" "Regular"
helvR12-ISO8859-1.pcf.gz: "Helvetica" "Regular"
FreeSans.ttf: "FreeSans" "нормален"
KanjiStrokeOrders.ttf: "KanjiStrokeOrders" "Medium"
Eadui.ttf: "Eadui" "Medium"
Unifont.ttf: "unifont" "Medium"
FreeSerif.ttf: "FreeSerif" "нормален"
cu12.pcf.gz: "ClearlyU" "Regular"
cu-pua12.pcf.gz: "ClearlyU PUA" "Regular"
10x20.pcf.gz: "Fixed" "Regular"
Относительно которого можно просто сказать, "завинчивают Вас" и добавляют другой поиск сверху его для получения соответствия путем, Вы ожидаете это:
$ fc-match -s uni | grep -i uni
Unifont.ttf: "unifont" "Medium"
Но, Ваш вопрос о том, как точно он делает соответствие. FcFontMatch(3)
и далее примерно подтвердите, что это использует принимать значение по умолчанию/настраивать значение и определенно подтверждает, что сначала изменяет критерий поиска, который Вы передали ему. Для чего-либо еще глубже, необходимо будет осмотреть код (запустите с вышеупомянутой функции).
FontConfig сопоставляет атрибуты на основе "расстояния" от критериев соответствия. Если вы хотите посмотреть, что происходит за кулисами, то установите переменную окружения FC_DEBUG=3 и повторите поиск. Это покажет отладочную информацию, которая может оказаться полезной. Вам не нужно читать код FontConfig.