Загрузка файлов по ssh на основе списка имен файлов

Можно сделать это как это с GNU, находят и параллель GNU:

find . -type f -print0 | parallel -0 grep '"MY PATTERN"' '{} > {//}/matches.{/}'
3
30.12.2013, 13:42
3 ответа

Если файл abc.txt содержит список родственника имен файлов от /path/to/base:

ssh user@server tar c -T /path/to/abc.txt -C /path/to/base | (cd /tmp; tar xv)

Это создает tarball на лету, на самом деле не сохраняя его нигде, передайте его по каналу к локальной оболочке, извлечению, эффективно копируя перечисленные файлы.

ДОПОЛНИТЕЛЬНЫЙ TIPS

Если файл abc.txt содержит список полных путей:

ssh user@server tar c -T /path/to/abc.txt | (cd /tmp; tar xv)

Если файл abc.txt находится в Вашей локальной системе, не удаленном:

ssh user@server tar c -T- < /path/to/abc.txt | (cd /tmp; tar xv)

Использовать gzip сжатие (использующий уровень 6 по умолчанию):

ssh -C user@server tar c -T /path/to/abc.txt | (cd /tmp; tar xv)

Использовать gzip уровень 9 сжатия:

ssh user@server 'tar c -T /path/to/abc.txt | gzip -9' | (cd /tmp; tar zxv)
5
27.01.2020, 21:14

Я думаю, что концентратор Вашей проблемы - то, как извлечь корректные файлы из Вашего списка для Ваших последующих двух логических путей.

egrep 'example1.css|example2.css' abc.txt

даст Вам всем строки, которые соответствуют исключениям, и

egrep -v 'example1.css|example2.css' abc.txt

даст Вам всем строки, которые не соответствуют исключениям

0
27.01.2020, 21:14

Вот является простая ведьма сценария работами с файлами, содержащими пробелы в имени файла:

SAVEIFS=$IFS; IFS=$(echo -en "\n\b") ; for elt in `cat abc.txt` ; do scp $elt <YOUR_SFTP_CONNECTION> ; done ; IFS=$SAVEIFS
1
27.01.2020, 21:14
  • 1
    Почему клавиша Backspace обработки как разделитель? (Да, я знаю, что Вы читаете его где-нибудь, но я никогда не прослеживал его до его источника. Это не имеет никакого смысла.) Вы забыли выключать globbing. Используя read более устойчиво, посмотрите, Как циклично выполниться по строкам файла?. –  Gilles 'SO- stop being evil' 31.12.2013, 00:57

Теги

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