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

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

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

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

1 ответ

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

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


РЕДАКТИРОВАТЬ

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

                 mount --bind olddir newdir

или запись в fstab:

                 /olddir /newdir none bind

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

Другие вопросы по тегам