Rsync копирует текущий каталог с именем

Я хочу скопировать текущий каталог в каталог резервного копирования:

Я пробовал эту команду rsync -a . ~/backup/, но просто копирует текущее содержимое каталога вместо создания нового каталога в пункте назначения.

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

Я хочу, чтобы rsync создавал новый каталог по пути назначения с таким же именем, что и текущий каталог. Как я могу достичь этого?

7 голосов | спросил B.A.B 23 PMpThu, 23 Apr 2015 13:45:05 +030045Thursday 2015, 13:45:05

2 ответа


3

Мне нравится ваш скрипт, но при необходимости вы можете сделать это по командной строке непосредственно из текущего каталога:

rsync -a "$PWD" ~/backup/

или способом, похожим на ваш сценарий, с помощью

rsync -a "$(pwd -P)" ~/backup/

Примечания:

  • Необходимо указать текущий каталог, если в пути присутствует, например, одно или несколько пробелов.

  • В случае символических ссылок в пути можно получить путь physical , избегая всех символических ссылок , указав опцию -P в вызове команды pwd ($(pwd -P)) или вызов исполняемого файла с его полным путем ($(/bin/pwd)). На самом деле существует встроенный pwd, который по умолчанию показывает путь symlinked , и исполняемый /bin/pwd, который по умолчанию показывает путь физический .

  • Обе команды ссылаются на переменную $PWD, которая содержит текущий рабочий каталог , когда их запрашивают версию пути с возможными символическими символами : поэтому, если вам не нужен только физический путь, вы можете избежать вызова subshell и используйте непосредственно переменную $PWD.

    rsync -a "$PWD" ~/backup/
    
ответил Hastur 23 PMpThu, 23 Apr 2015 15:38:03 +030038Thursday 2015, 15:38:03
2

Найдено решение:

Создал новый сценарий оболочки следующим образом:

current_dir=`pwd`
dir_name=`basename $current_dir`
rsync -a . ~/backup/$dir_name

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

ответил B.A.B 23 PMpThu, 23 Apr 2015 14:01:12 +030001Thursday 2015, 14:01:12

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132