Как скопировать файл и символическую ссылку на этот файл? - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь скопировать папку, содержащую текстовый файл и символическую ссылку на текстовый файл.Как добиться следующего дублирования папки 1:

|---- Folder1
|     |---- file1.txt
|     |---- symlink_to_file1.txt

Теперь я хочу скопировать эту папку, чтобы она стала:

|---- Folder1_copy
|     |---- file1_copy.txt
|     |---- symlink_to_file1_copy.txt

Обычно имена не меняются и включают «_copy»Я просто добавил это, чтобы прояснить пример.

В настоящее время, если я "ctrl + c", "ctrl + v", структура моей папки, я получаю:

|---- Folder1_copy
|     |---- file1_copy.txt
|     |---- symlink_to_file1.txt

РЕШЕНИЕ ВЫШЕ:

rsync -av Folder1/* Folder1_copy/

Однако ЭТО НЕ РАБОТАЕТ в случае дублирования:

|---- Folder1
|     |---- Nested_folder1
|     |     |---- file1.txt
|     |---- Nested_folder2
|     |     |---- Nested_folder3
|     |     |     |---- symlink_to_file1.txt

После запуска rsync -av Folder1/* Folder1_copy/ на вышеуказанном файлеструктура, новая символическая ссылка symlink_to_file1_copy.txt будет по-прежнему указывать на исходную file1.txt

1 Ответ

0 голосов
/ 02 апреля 2019

Попробуйте это: rsync -av Folder1/* Folder1_copy/
Я сам проверил это, и похоже, что вы добились нужной настройки.Первое решение, предложенное в комментариях, не сохраняет ссылку, а второе помещает копию всего каталога Folder1 в Folder1_copy.

Важное предупреждение: для любых символических ссылок в Folder1, которые копируются в Folder1_copy, чтобы фактически указывать на другие скопированные файлы в Folder1_copy, а не на исходные файлы в Folder1, эти символические ссылки необходимо создавать для указания на файлы на основе их относительный путь в папке 1 вместо абсолютного пути.

...