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

Я делаю передачу данных, старая файловая система опирается на каталог, который теперь находится на другом пути. Это каталог git, в котором хранится код в Интернете. У меня нет прав переместить его или переименовать.

Так что я могу сделать, это rsync этот каталог на тот же старый путь. Но имя каталога также изменилось.

Есть ли простой способ, которым я могу rsync каталог в целевой каталог с другим именем?

  • Не удается передать ssh-соединение с помощью rsync
  • Кэширование записывает изменения на SSD, чтобы избежать разгона HDD? ZFS, но (возможно) не L2ARC
  • Запуск rsync в качестве демона для локальной передачи
  • Приостановка rsync через скрипт bash?
  • Можно ли настроить rsync, чтобы не изменять подкаталоги, не найденные в исходной папке?
  • rsync -delete-excluded с -prune-empty-dirs, но только обрезанные исключенные каталоги
  • Использовать только mtime-сравнение с rsync?
  • Создание панели прогресса с «диалогом» из вывода rsync
  • 3 Solutions collect form web for “Как переписать каталог в новый каталог с другим именем?”

    Если вы хотите использовать rsync для рекурсивно сделать каталог dest точной копией каталога src :

     rsync -a src/ dest 

    На странице rsync объясняется, как это работает:

    Конечная косая черта на источнике […] не позволяет [s] создать дополнительный уровень каталога в пункте назначения. Вы можете думать о конце / в источнике как о значении «скопировать содержимое этого каталога» в отличие от «скопировать каталог по имени» […]

    Сейчас я нахожу альтернативное решение.

    Использование rysnc -r /origin/* /target/ может синхронизировать все содержимое из каталога происхождения в целевой каталог.

    Если старые и новые файловые системы доступны для вашего компьютера, рассмотрите возможность использования символической ссылки вместо rsync. Если ваша команда rsync, которую вы используете, не указывает хосты (или если они являются одним и тем же хостом), то это так. Вы пытаетесь зеркально отобразить два каталога с другим именем на одном хосте. Не используйте rsync для этого, поскольку вы дублируете данные, и вам придется часто запускать ваш rsync, чтобы синхронизировать их.

    Использование символической ссылки – это одноразовое исправление, которое будет отображать два каталога (с разными именами) и требует почти свободного места. Это похоже на создание каталога псевдонимов, указывающего на другой каталог.

    Допустим, у вас был старый git в каталоге / old / path / old_git, и теперь репозиторий кода переместился в / new / path / new_git

    Ты можешь сделать:

     cd /old/path rm -rf old_git (if you still have it there, get rid of it, or move it out of the way) ln -s /new/path/new_git old_git 

    Это создаст ссылку как таковую:

    / old / путь / old_git -> / новый / путь / новый_git

    Так что все, что помещается в new_git, будет мгновенно доступно и по-старому, без дублирования данных и без необходимости постоянно синхронизировать их.

    Linux и Unix - лучшая ОС в мире.