"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 сам рекурсирует все каталоги, файлы будут загружены три раза (или даже чаще для дальнейших подкаталогов). Используйте wputftp://host/
загрузить все из локального каталога. Или используйте найти! −type d | wputftp://host/
−i - указывать найти, а не выводить каталоги.