find и rsync оба подавились на файле со странным именем

/usr/share/gnome-background-properties/desktop-backgrounds-default.xml содержит настройки для обоев; хотя, похоже, нет какой-либо команды для повторного сканирования этого XML-файла (все еще можно добавить туда дополнительные XML-файлы, которые поддерживают актуальный индекс какого-либо другого каталога).

однако можно определить отдельные имена файлов:

gsettings set org.gnome.desktop.background picture-uri 'file:///whatever/i/want/background.jpg'

и можно также получить доступ к другим параметрам, подобным этому:

gsettings set org.gnome.desktop.background picture-options 'centered'

при написании сценария изменения обоев необходимо установить draw-background перед и after:

gsettings set org.gnome.desktop.background draw-background false
gsettings set org.gnome.desktop.background picture-uri file:///whatever/i/want/background.jpg
gsettings set org.gnome.desktop.background draw-background true

есть также gnome-tweak-tool , который предоставляет графический интерфейс для этих настроек gconf .

@see Ошибка 682126 - Показывать самые последние фотографии пользователя .

7
18.11.2016, 21:35
1 ответ

Файл со странным названием может быть отвлекающий маневр. Ваши инструменты выполняют несколько уловок, чтобы заставить вас думать, что что-то сломалось.

Имя файла находится в UTF-8, поэтому вы должны экспортировать LANG = en_US.UTF-8 , чтобы ваши команды могли использовать имя файла без проблем. Запустите команду locale без аргументов, чтобы проверить текущие переменные среды.

Или, если вы настаиваете на использовании локали "C", используйте ls -b , чтобы вместо вопросительных знаков ls печатала escape-последовательности. Затем вы можете использовать $ '\ 353 \ 266 \ 204 \…' в качестве аргумента в bash.

Команда find трусливо отказывается записывать нетекстовые символы на терминал. Другими словами, найти и найти | cat ведут себя иначе, причем последний пишет имена без кавычек, поэтому find | xargs действительно работает. Более надежный способ записи - find -print0 | xargs -0 для предотвращения интерпретации возможных пробельных символов программой xargs.

Это не объясняет «Нет такого файла или каталога» - конечно, ваша файловая система действительно может содержать ошибку - но это должно позволить вам более точно указать свое намерение в командной строке.

Сначала я не думал, что это имеет отношение к делу, но у меня есть привычка ставить перед странными именами файлов префикс ./ , чтобы команды не интерпретировали их.На боковой панели был показан связанный вопрос «rsync: двоеточие в именах файлов» , который мог быть основной причиной вашей ошибки rsync.

1
27.01.2020, 20:20

Теги

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