rsync не використовує параметр --files-from?


13

Я намагаюся запустити , rsync -a --files-from=~/.rsync_file_list ~/destinationі він каже мені: rsync error: syntax or usage error (code 1) at options.c(1652) [client=3.0.7]. Чи може хтось просвітити мене щодо того, що я роблю неправильно?

Файл ~/.rsync_file_listпросто містить перелік імен файлів, попередньо позначених ~/, розділених новими рядками (хоча я також намагався перерахувати їх у одному рядку з тим самим результатом).

Якщо я запускаю, rsync -a ~/file ~/file2 ~/file3 ~/destinationце працює чудово. То що мені не вистачає у --files-fromваріанті?


спробуйтеsed "s#~/#/home/wolf/#g" -ie ~/.rsync_file_list
Енді

@Andy: На жаль, такий же результат.
Вовк

Відповіді:


20

Гаразд, я знайшов проблему.

  1. Файл, що містить імена файлів, повинен містити лише імена файлів; відсутні шляхи, відносні чи інакше;
  2. Після вказівки --files-from=FILE, rsync вимагає вихідного каталогу, в якому можна знайти перелічені файли.

Отже команда повинна бути rsync -a --files-from=~/.rsync_file_list $HOME/ /destination.

.rsync_file_list слід читати:

file 1
file 2
file 3

3
Виправлення: Імена файлів у заданому файлі ARE відносно вихідного каталогу, але не можуть бути над ним (no ../). Провідні косої риски будуть ігноровані, тому абсолютні шляхи не працюють.
Вовк

Я вважаю, ви можете відредагувати власну відповідь та додати це дуже приємне доповнення та відповідну інформацію, яку ви дізналися пізніше у самій відповіді.
Vinícius M

0

Використання "~" може не працювати у файлі "файли-з", якщо rsync не є достатньо розумним для розпізнавання та перекладу символу "~".

Коли ви вказуєте "~" як частину команди в командному рядку вашої оболонки, саме оболонка перетворює "~" у ваш домашній каталог, перш ніж передавати аргумент разом із програмою. Отже, навіть якщо ви набираєте rsync -a ~/file, те, що rsync"бачить", насправді є вирішеним шляхом, або rsync -a /home/foo/file.

Додаткову інформацію див. У розділі Розширення Bash Tilde .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.