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

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

Так что я могу сделать, это 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, будет мгновенно доступно и по-старому, без дублирования данных и без необходимости постоянно синхронизировать их.

  • Использование setfacl для создания рекурсивных разрешений для Apache с помощью rsync
  • Может ли rsync фиксировать отметки времени без повторной загрузки?
  • Повторное использование сеанса ssh для повторяющихся команд rsync
  • Удалите строки текста, которые заканчиваются на "/"
  • Поиск метода rsync + ssh в качестве альтернативы Dropbox
  • Не удается установить rsync (невозможно создать ... Ошибка ввода / вывода)
  • Разрешить ограниченный скрипт rsync (rrsync) для произвольных каталогов с авторизованными ключами
  • Время ожидания rsync
  • Резервное копирование в Linux с возобновлением поддерживает только последнюю версию
  • rsync: исключая шаблон в файле exclude, не работает
  • Есть ли способ отправить настраиваемые аргументы на сервер rsync?
  • удалить .gitignored файлы с помощью rsync
  • Linux и Unix - лучшая ОС в мире.