доберитесь rsync для разыменования symlinked директоров, представленных на cmdline, нравится, находят-H

Конечно, есть много способов сделать это, но почему вы хотите? Это то, что файл FSTAB для .

Некоторые идеи:

  • Создайте систему монтажа или автомата (или просто простого сценария запуска, который работает ).
  • Используйте Crontab для запуска крепления.
  • У вашего настольной среды есть скрипт запуска.
  • Найдите инструмент в официальном реподе или AUR, которые делают это для вас (у меня нет рекомендаций).
  • Вставьте злой взломать, куда вы выберете.
-121--114493-

Основная проблема состоит в том, что SED работает на строках , поэтому он ничего не делает до первого \ N достигнут, и это не происходит, пока ваша команда не закончится. Вы можете обойти это путем обмена \ R с \ N :

$ curl --progress-bar http://127.0.0.1/test.tar.bz2 -o test.tar.bz2 2>&1 | 
   tr $'\r' $'\n' | sed -r 's/[# ]+/#/g;'

Это, однако, приводит вас к буферизации, SED теперь будет действовать на группы строк. Окончательное решение, которое я взломал вместе, должен был перенаправить ошибку к файлу, а затем иметь дело с этим файлом:

$ curl --progress-bar http://127.0.0.1/test.tar.bz2 -o test.tar.bz2 2>er
$ while :; do 
    echo -ne "$(tr $'\r' $'\n' < er | tail -n 1 | sed -r 's/^[# ]+/#/;')\r"; 
  done

команда выше, анализирует файл ошибки ( er ) и распечатать результат с помощью \ R Создание его обновления постоянно. Вам нужно будет выйти из него вручную.

Предложение от анонимного пользователя: Вы также можете поставить STDBUF -OL перед TR и SED , что модифицирует поведение буферизации команды.

1
03.09.2014, 01:17
1 ответ

Если somelink является символической ссылкой на каталог somedir , то

rsync -a somelink/. target/

копирует содержимое somedir в target .

Если у вас есть только относительные символические ссылки, которые остаются внутри источника, вы можете использовать

rsync -a --copy-unsafe-links somelink target/

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

mkdir -p target/somelink
rsync -a somelink/. target/somelink
0
28.01.2020, 01:54

Теги

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