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

Итак, вот что я сделал уже:

У меня есть файл с именем abc.txt, который содержит список файлов. Я использую abc.txt для перемещения этих файлов в папку, в эту папку, и, наконец, я загружаю tar на свой локальный ПК с моего сервера, на котором работает GNU / Linux.

Вот шаги в форме списка:

  1. abc.txt
  2. abc.txt (перечисленные файлы) -> папка
  3. Папка -> folder.tar
  4. folder.tar -> локальный ПК.

Если abc.txt содержит 2 файла, например:

example1.css example2.css 

Мне нужно загрузить эти файлы из abc.txt отдельно и напрямую на локальный ПК.

Поскольку ftp или sftp требуется имя файла для его загрузки, как я могу прочитать это из abc.txt?

  • как узнать на моей Linux-машине, если активен VIA sftp
  • Filezilla: ошибка GnuTLS при использовании FTPES
  • Как разрешить определенному пользователю доступ к FTP?
  • Как подключиться и загрузить на этот FTP-хост на консоли?
  • Тестирование имени пользователя и пароля FTP
  • Нам нужно, чтобы chmod сценарий оболочки, прежде чем он может быть rsh
  • Код возврата всегда равен 0 после запуска echo "\ $ macroName" | ftp -i mymachine
  • Linux LiveCD-сервер с FTP и SSH-сервисами
  • 3 Solutions collect form web for “Загрузка файлов по ssh на основе списка имен файлов”

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

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

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

    ДОПОЛНИТЕЛЬНЫЕ СОВЕТЫ

    Если файл 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) 

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

     SAVEIFS=$IFS; IFS=$(echo -en "\n\b") ; for elt in `cat abc.txt` ; do scp $elt <YOUR_SFTP_CONNECTION> ; done ; IFS=$SAVEIFS 

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

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

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

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

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

    Interesting Posts

    Одновременное редактирование нескольких файлов с помощью vim / gedit

    Я не могу настроить яркость экрана моего ноутбука больше

    NAT не работает должным образом в Linux 2.6.30

    RHEL: настройка разрешения экрана виртуальной коробки

    Почему OOM-killer иногда не может убить ресурсных свиней?

    Можно ли запустить xserver без какого-либо окна?

    Укажите тип раздела GUID для всех дисков из командной строки?

    rsyslog: Как я могу гарантировать, что rsyslog предоставляет сообщение об ошибке / отладке всякий раз, когда сообщения отбрасываются?

    Где все диски используются?

    Официальный стандарт / соглашение для расширения файла для сценариев оболочки для источника

    Могу ли я восстановить удаленные файлы моего Linux-жесткого диска из Windows?

    Попытка конвертировать простую программу C в программу AWK

    Сделать Apache доступ к скрытым файлам (Solaris)

    Могу ли я настроить параметры отображения оболочки?

    CentOS: postqueue -p показывает сообщение, которое возвращается в очередь

    Linux и Unix - лучшая ОС в мире.