Rsync копіює вміст каталогів, але не сам каталог


120

Я намагаюся синхронізувати два вмісту папок з різною назвою:

rsync -av ~/foo user@remote.com:/var/www/bar

Я хотів би скопіювати вміст fooу barвіддалений хост, але не сам каталог foo. Я спробував щось подібне foo/*, але rsync цього не підтримує.

rsync завжди створює

/var/www/bar/foo

18
просто залишити
засунутий нахил

Відповіді:


190

Спробуйте rsync -av ~/foo/ user@remote.com:/var/www/bar/


37
Така поведінка дивна, порівняно з mvабо cp.
zeekvfu

Здається дивним і непослідовним, щоб зробити косу косу рису важливою саме для цієї конкретної команди. Цікаво, чому його не змінили.
Люк Девіс

39
У випадку, якщо хтось також цікавився, чому це працює: це слід /після імені каталогу.
Етьєн Брюйнз

31

Це просто,

rsync /var/www/ /home/var- копіює вміст / var / www /, але не саму папку www .

rsync /var/www /home/var- копіює папку www разом із усім її вмістом.

Значення "/" робить різницю.


6
Це має бути прийнята відповідь, яка справді пояснює різницю
edi9999

29

Не стосується лише rsync, але коли ви шукаєте приклади, як використовувати команду GNU / Linux, ви можете використовувати "напр.", Який відображає явні приклади. Наприклад, тут можна ознайомитись із інструкціями щодо її встановлення: https://github.com/srsudar/eg

Результат eg rsyncнаступний

# rsync


copy the folder source_dir and its content into destination_dir

    rsync -av source_dir destination_dir


copy the contents of source_dir (trailing slash) into destination_dir

    rsync -av source_dir/ destination_dir

0

Перейдіть до каталогу, який ви хочете скопіювати, так:

cd ~/foo 

Виконати це:

rsync -avz . user@remote.com:/var/www/bar
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.