Я использую bash версии 3.0.9 под Centos 7, и я просто не могу найти комбинацию экранирования, которая позволила бы мне передать одинарные кавычки в параметр out-format. Я пробовал каждую комбинацию, которую я придумал, чтобы заключить параметры в одинарные или двойные кавычки, избегая одиночных с помощью обратной косой черты, объединяя строки, передавая их как переменные, похоже, ничего не работает. По-видимому, приведенная ниже команда должна работать, чтобы дать мне удобочитаемые размеры файлов, но я просто получаю одинарные кавычки, которые вы видите в выводе:
$ rsync -crthivn --out-format="%n %''l" /from_folder /to_folder
sending incremental file list
test/ %''l
test/file1 %''l
test/folders_current %''l
test/test2/ %''l
test/test2/file2 %''l
sent 191 bytes received 29 bytes 440.00 bytes/sec
Я думал, что экранирование bash будет корнем проблемы, но я получаю те же результаты, когда пытаюсь использовать sh и csh. Так что я сейчас очень запутался! Любая помощь приветствуется.
Чтобы продолжить, это похоже на ошибку в 3.0.9 - я обнаружил, что проблема исчезает после обновления до rsync 3.1.2 (что вам нужно сделать вручную, потому что вы можете получить только до 3.0.9. из официальных репозиториев Centos).
Я следовал инструкциям здесь, как это сделать: