
Мне нужно скопировать структуру каталогов из одного места в другое. Мне нужно скопировать только папки и символические ссылки.
Я использую команду
find $SOURCE_PATH/ \( -type l -o -type d \) -printf "%P\0" | rsync --files-from - --from0 -av $SOURCE_PATH $USER@$DESTINATION_SERVER:/$DESTINATION_PATH/$SOURCE_PATH
Команда выполнена успешно, и она копирует папку и ссылки. Моя проблема в том, что ссылки указывают на старое место назначения.
Мой исходный путьприложение/cg/dev и
конечный путь -tmp/app/cg/dev
и теперь мои ссылки, которые я скопировал, указывают на app/cg/dev/somefolder. Мне нужно, чтобы они указывали натмп/app/cg/dev/somefolder.
После того, как я выполню rsync для всех ссылок, хорошим способом исправить их было бы прочитать путь ссылки, а затем просто объединить мой путь назначения. пример
find . -type l | while read l; do
concatenate destination folder and readlink l
done
может ли кто-нибудь помочь мне написать этот код?