Как я могу скопировать файлы путем создания символьных ссылок?

Я хочу пересечь файловую систему и части копии ее к другой файловой системе путем создания символьных ссылок вместо того, чтобы копировать что-либо.

rsync было бы идеально, если бы это имело что-то как a --local-copy-via-symlink опция, потому что rsyncфильтры включения/исключения были бы лучшим способом указать то, что я хочу скопировать.

Я знаю, что могу сделать это со сценарием, но являюсь там умной командой, которая уже делает это?

-2
задан 24 July 2014 в 00:29
1 ответ
  1. Симлинк не является копией файла, ссылка - указатель на другой файл.
  2. Изменение данных либо с помощью имени файла, либо с помощью имени ссылки не приводит к появлению двух разных файлов, как в случае с реальной копией.
  3. Удаление оригинала не сохраняет (копию) данных в месте расположения сим-ссылки, вместо этого вы получаете так называемую сломанную сим-ссылку, которая указывает на место расположения файла, которого больше не существует.

Проще говоря, ничего "умного" делать не надо.


EDIT

Вместо создания симлинков, в Linux есть концепция монтирования "привязки". Начиная с Linux 2.4.0 можно перемонтировать часть файловой иерархии куда угодно. Вызов такой:

                 mount --bind olddir newdir

или fstab запись:

                 /olddir /newdir none bind

После этого вызова одно и то же содержимое доступно в двух местах. Это сохраняет все существующие разрешения, но у вас также нет символических ссылок.

2
ответ дан 5 December 2019 в 21:18

Теги

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