Могу ли я жестко связать файлы с помощью rsync вместо их копирования?

465
nnyby

cp -lжесткие ссылки на файлы вместо их копирования, экономя пространство файловой системы. Мне нужно использовать rsync вместо cp из-за его --excludeвозможностей.

Итак, мой вопрос: как мне получить rsync для файлов жестких ссылок вместо их копирования? Очевидно, это копия локальной файловой системы. Я прочитал документы для -Hопции rsync, но мне неясно, ведет ли себя так же, как cp -l.

1
Похоже, что я могу получить это поведение с помощью `--link-dest = $ SOURCE_DIR`: https://slaptijack.com/system-administration/rsync-backups-conserve-disk-space-with-hard-links/ I ' Я проверяю это сейчас. nnyby 6 лет назад 0
Обычно rsync используется для резервного копирования или архивирования. Зачем вам нужна резервная копия имен файлов без их содержимого? AFH 6 лет назад 0
@AFH мой скрипт резервного копирования создает многократные резервные копии гигабайт данных во многие моменты времени, но большая часть этих данных одинакова. Я экономлю дисковое пространство, копируя их между временными точками с помощью `cp -al`. Без использования жестких ссылок все эти разные копии данных (если бы они были настоящими файлами) не поместились бы на моих дисках объемом 2 ТБ. Смотрите: https://slaptijack.com/system-administration/rsync-backups-conserve-disk-space-with-hard-links/ nnyby 6 лет назад 0
Таким образом, вы можете восстановиться после случайного удаления, хотя и не перезаписанного, но вы никогда не сможете использовать свою резервную копию для восстановления после сбоя диска или потери раздела. Я использую `cp -au`, который копирует только измененные файлы, поэтому процесс не занимает много времени, но он дает мне внешнюю копию последней версии каждого файла для целей восстановления. Конечно, для резервного копирования гигабайтов данных вам нужно гигабайт хранилища, но если ваши файлы важны, вам нужно вложить эти средства. Только несущественные файлы не резервируются по определению. AFH 6 лет назад 0

1 ответ на вопрос

0
nnyby

Ответ оказался да, с --link-destопцией rsync . Это просто неочевидно, потому что это не простой флаг включения / выключения cp -l, потому что он принимает аргумент пути.

Итак, cp -l a/ b/также можно сделать так:

rsync -a --link-dest=a a/ b/ 

Похожие вопросы