Ошибка при попытке скопировать содержимое каталога с помощью rsync внутри сценария оболочки

Я хочу скопировать содержимое "src/main/resources/" на мои удаленные серверы. Эта папка содержит несколько *properties файлов.

Следующая команда выполняется без проблем в bash и zsh:

rsync -av "src/main/resources/*" "azureuser@s1.cloudapp.net:/home/azureuser"

Однако при выполнении такой команды внутри сценария оболочки я получаю следующую ошибку. Я думаю, что это связано с расширением * в оболочке.

rsync: link_stat "/home/marcos/Desenvolvimento/Java/EXT-Hyuga/src/main/resources/*" failed: No such file or directory (2)

Как можно решить эту проблему?

Содержимое сценария оболочки:

#!/bin/bash

# server array
declare -a deployinstances=("s1" "s2" "s3" "s4")

## looping trough deploy instances
for di in "${deployinstances[@]}"
do
   rsync -av "src/main/resources/*" "azureuser@$di.cloudapp.net:/home/azureuser"
done
1
задан 9 April 2016 в 00:21

1 ответ

Ваша первая команда, та, которую Вы выполнили непосредственно в командной строке, не работала бы также.

В bash (и все другие оболочки), поколение имени файла (иначе расширение пути или расширение шарика) не произойдет, когда маркеры (например, *, ?, []) будут помещены в кавычках (дважды и единственный), поскольку удаление кавычки сделано оболочкой после расширения пути для любого слова, таким образом, слово рассматривают буквально затем.

, Таким образом, необходимо сохранить * за пределами кавычек:

rsync -av src/main/resources/* azureuser@"$di".cloudapp.net:/home/azureuser/

я не использовал кавычек здесь ни в каком пути, потому что, если у Вас нет пробелов в пути, Вам не нужны кавычки вокруг пути.

0
ответ дан 9 April 2016 в 10:21
  • 1
    Да изменение смещения может измениться, как Windows загружается. Я думаю, что можно войти установочный диск Windows, если Вы имеете один или диск восстановления и автоматически ищете и решаете проблемы, и это должно зафиксировать его, но если Вы don' t хотят рискнуть им, тогда возможно, Вы могли преобразовать диск в динамический диск, и я думаю что работы для пространства, состоящего из нескольких несмежных участков. В противном случае тогда I' m извините я don' t знают, что еще сказать. – hacker23ify 18 August 2017 в 17:50

Другие вопросы по тегам:

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