Навіщо додавати прорізну косу рису після пункту призначення rsync?


13

Відповідно до цієї веб-сторінки, додавання '/' до кінця пункту призначення 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.:? Якщо так, зауважте, як ваша команда зовсім не схожа на таку, яку наведено у прикладі, наведеному на сторінці man.
jesse_b

@Jesse_b Ваш коментар мене дивує ... "Під час використання" / "в кінці пункту призначення rsync вставить дані всередину останньої папки. Якщо не використовувати" / "в кінці пункту призначення, rsync створить папку з останнє ім'я папки призначення та вставте дані всередину цієї папки. "
Hauke ​​Laging

@HaukeLaging Я розгублений, що дивно? Цей конкретний розділ також стосується кінцевої косої риски, яка знаходиться на джерелі. Тож якщо ви rsync -r dir1/subdir1 dir2/це зробили , скопіюйте вміст subdir1у, dir2але якщо ви зробили rsync -r dir1/subdir1/ dir2/це, скопіюйте весь каталог (включаючи вміст) subdir1у dir2так, щоб у вас було./dir2/subdir1/
jesse_b

@Jesse_b Я не помітив "чоловіка" у вашому першому коментарі. Цілком очевидно, що ОП не посилається на чоловічу сторінку, а на сторінку, яку він пов’язав.
Hauke ​​Laging

@HaukeLaging О да, навіть не бачив цього. Я думаю, що я занадто швидко скумував і читав це як "За даними сторінки людини".
jesse_b

Відповіді:


28

Це має значення, коли джерелом є файл, а каталог призначення не існує. Наприклад, візьміть файл, який називається fileджерелом:

  • $ rsync file dest/створить копію fileвсередині каталогу dest, тоді як
  • $ rsync file destзробить копію fileназваного файлуdest

Додати (з коментарів); якщо каталог destвже існує, копія fileбуде створена destв обох випадках вище.

Основний приклад:

~/test > touch file
~/test > mkdir dest1
mkdir: created directory 'dest1'
~/test > tree
.
├── dest1
└── file

1 directory, 1 file
~/test > rsync file dest1
~/test > rsync file dest2
~/test > rsync file dest3/
~/test > tree
.
├── dest1
│   └── file
├── dest2
├── dest3
│   └── file
└── file

2 directories, 4 files
~/test >

1
Дякую. Отже, якщо каталог destвже існує, немає необхідності в косої рисі?
EmmaV

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