lftp: увійдіть, введіть файл у віддалений dir та вийдіть в одній команді: належна довідка з цитуванням


17

Я хочу використовувати lftp -cцілий сеанс за один раз (тому що я буду запускати це зі сценарію пізніше), і мені це вдалося, -eале це ofc залишає мені інтерактивну сесію, яку я не хочу.

Ручні стани

-c commands
          Execute the given commands and exit. Commands can be separated with a semicolon,  `&&'
          or  `||'.  Remember to quote the commands argument properly in the shell.  This option
          must be used alone without other arguments.

Але я не розумію, як слід правильно цитувати та з'єднувати свої команди / взаємодії разом.

lftp -e "put -O remote/dir/ /local/file.txt" -u user,pass ftpsite.com працює чудово. Але я хочу вийти після виконання команди;

lftp -c "open -u user,pass ftpsite.com" || put -O "remote/dir/ /local/file.txt" просто кричить на мене, або насправді будь-яке поєднання цитат, які я пробував ( ||або &&незалежно)


просто додати; кинути або; до побачення :)
meso_2600

Відповіді:


28
$ lftp -c "open -u user,pass ftpsite.com; put -O remote/dir/ /local/file.txt" 

повинен це зробити.

Якщо це не працює, спробуйте додати до /etc/lftp.confнаступних рядків:

set ftp:ssl-protect-data true
set ftp:ssl-force true
set ftp:ssl-auth TLS
set ssl:verify-certificate no

2
чи все-таки зробити цю роботу, якщо в паролі є такі символи, як' " : ;
Піт,

Мене спалахнуло, бо у мене було місце після цієї першої коми, колись я зрозумів, що це чудово працює
Патрік


1

lftp -e "put -O remote/dir/ /local/file.txt; bye" ftp.yourhost.com

і помістіть ваші облікові дані під ~ / .netrc, як

machine ftp.yourhost.com login your_username password your_password

Вводити паролі в кліп абсолютно не потрібно, оскільки вони навіть читаються при використанні ps -aux під час завантаження .. крім історії bash.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.