Согласно этой веб-странице, добавление «/» в конец назначения rsync приводит к отличному результату от его не добавления.
Я пытался проверить это, но я не могу проверить это:
$ mkdir dir{1..3}
$ touch dir1/file
$ rsync -r dir1/ dir2
$ rsync -r dir1/ dir3/
$ ls dir*
dir1:
file
dir2:
file
dir3:
file
Есть ли смысл иногда добавлять '/' к месту назначения?
A trailing slash on the source changes this behavior to avoid creating an additional directory level at the destination.
? Если это так, пожалуйста, обратите внимание, что ваша команда совсем не похожа на команду, приведенную в справочной странице.rsync -r dir1/subdir1 dir2/
это будет копировать содержимоеsubdir1
вdir2
но если вы сделалиrsync -r dir1/subdir1/ dir2/
это будет скопировать весь каталог (включая содержание)subdir1
вdir2
так что вы бы./dir2/subdir1/
Ответы:
Это имеет значение, когда источником является файл, а каталог назначения не существует. Например, возьмите файл с
file
именем source:$ rsync file dest/
создаст копиюfile
внутри каталогаdest
, тогда как$ rsync file dest
сделает копию файла сfile
именемdest
Добавить (из комментариев); если каталог
dest
уже существует, копияfile
будет созданаdest
в обоих случаях выше.Основной пример:
источник
dest
уже существует, нет нужды в конце?dest
существует, копияfile
будет создана внутри в обоих случаях.