"wput" несколько файлов из командной строки?

Вы можете загрузить один файл с wput:

wput file ftp://username:passwd@ipaddress/file

Есть ли способ загрузить несколько? Может быть что-то вроде:

wput {file1,file2} ftp://username:passwd@ipaddress/{file1,file2}

Примечание: я знаю, что есть решения, использующие ftp, curl, и другие. Мне было интересно, если есть один для wput,

1 ответ

Решение

Из руководства:

So you can specify e.g. one URL and read all filenames from a file. 
Or use wput *.txt ftp://host, to transfer all *.txt-files. 
See EXAMPLES for further examples.

-I файл

--input-файл = файл

Читает URL-адреса и имена файлов из файла. Если в командной строке тоже есть URL-адреса, они будут извлечены первыми, если сортировка не включена. Смотрите также раздел URL-Input-Handling. Если файл - -, URL будут считаны из стандартного ввода. Если вы хотите передать содержимое файла, который должен быть загружен в stdin, это невозможно (пока). Но вы можете использовать флаг --input-pipe и читать содержимое a) из именованного канала -I "cat named.pipe; echo > /dev/null" или b) непосредственно из команды, которая выводит данные. (Смотрите --input-pipe) Не делайте таких вещей, как find | wput ftp://host/ −i -! Wput будет загружать все файлы из текущего каталога (так как первый вывод find будет '.'), А затем каждый файл снова (так как find передает свое имя в Wput. И еще проблематично, что Wput будет загружать каждый каталог, заданный find и так как find сам рекурсирует все каталоги, файлы будут загружены три раза (или даже чаще для дальнейших подкаталогов). Используйте wput ftp://host/ загрузить все из локального каталога. Или используйте найти! −type d | wput ftp://host/ −i - указывать найти, а не выводить каталоги.

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