1lftp(1) General Commands Manual lftp(1)
2
3
4
6 lftp - Sophisticated file transfer program
7
9 lftp [-d] [-e cmd] [-p port] [-u user[,pass]] [site]
10 lftp -f script_file
11 lftp -c commands
12 lftp --version
13 lftp --help
14
15
17 This man page documents lftp version 4.8.1.
18
19
21 lftp is a file transfer program that allows sophisticated FTP, HTTP and
22 other connections to other hosts. If site is specified then lftp will
23 connect to that site otherwise a connection has to be established with
24 the open command.
25
26 lftp can handle several file access methods - FTP, FTPS, HTTP, HTTPS,
27 HFTP, FISH, SFTP and file (HTTPS and FTPS are only available when lftp
28 is compiled with GNU TLS or OpenSSL library). You can specify the
29 method to use in `open URL' command, e.g. `open http://www.us.ker‐
30 nel.org/pub/linux'. HFTP is ftp-over-http-proxy protocol. It can be
31 used automatically instead of FTP if ftp:proxy is set to
32 `http://proxy[:port]'. Fish is a protocol working over an ssh connec‐
33 tion to a unix account. SFtp is a protocol implemented in SSH2 as SFTP
34 subsystem.
35
36 Besides FTP-like protocols, lftp has support for BitTorrent protocol as
37 `torrent' command. Seeding is also supported.
38
39
40 Every operation in lftp is reliable, that is any non-fatal error is
41 handled properly and the operation is repeated. So if downloading
42 breaks, it will be restarted from the point automatically. Even if FTP
43 server does not support the REST command, lftp will try to retrieve the
44 file from the very beginning until the file is transferred completely.
45
46 lftp has shell-like command syntax allowing you to launch several com‐
47 mands in parallel in background (&). It is also possible to group com‐
48 mands within () and execute them in background. All background jobs are
49 executed in the same single process. You can bring a foreground job to
50 background with ^Z (c-z) and back with command `wait' (or `fg' which is
51 alias to `wait'). To list running jobs, use command `jobs'. Some com‐
52 mands allow redirecting their output (cat, ls, ...) to file or via pipe
53 to external command. Commands can be executed conditionally based on
54 termination status of previous command (&&, ||).
55
56 If you exit lftp before all jobs are not finished yet, lftp will move
57 itself to nohup mode in background. The same thing happens with a real
58 modem hangup or when you close an xterm.
59
60 lftp has built-in mirror which can download or update a whole directory
61 tree. There is also reverse mirror (mirror -R) which uploads or updates
62 a directory tree on server. Mirror can also synchronize directories
63 between two remote servers, using FXP if available.
64
65 There is command `at' to launch a job at specified time in current con‐
66 text, command `queue' to queue commands for sequential execution for
67 current server, and much more.
68
69 On startup, lftp executes /etc/lftp.conf and then ~/.lftprc and
70 ~/.lftp/rc (or ~/.config/lftp/rc if ~/.lftp does not exist). You can
71 place aliases and `set' commands there. Some people prefer to see full
72 protocol debug, use `debug' to turn the debug on. Use `debug 3' to see
73 only greeting messages and error messages.
74
75 lftp has a number of settable variables. You can use `set -a' to see
76 all variables and their values or `set -d' to see list of defaults.
77 Variable names can be abbreviated and prefix can be omitted unless the
78 rest becomes ambiguous.
79
80 If lftp was compiled with OpenSSL (configure --with-openssl) it
81 includes software developed by the OpenSSL Project for use in the
82 OpenSSL Toolkit. (http://www.openssl.org/)
83
84
85 Commands
86 ! shell command
87
88 Launch shell or shell command.
89
90 !ls
91
92 To do a directory listing of the local host.
93
94 alias [name [value]]
95
96 Define or undefine alias name. If value is omitted, the alias is unde‐
97 fined, else it takes the value value. If no argument is given the cur‐
98 rent aliases are listed.
99
100 alias dir ls -lF
101 alias less zmore
102
103 at time [ -- command ]
104
105 Wait until the given time and execute given (optional) command. See
106 also at(1).
107
108 attach [PID]
109
110 Attach the terminal to specified backgrounded lftp process.
111
112 bookmark [subcommand]
113
114 The bookmark command controls bookmarks.
115
116 Site names can be used in the open command directly as-is or in any
117 command that accepts input URLs using the bm:site/path format.
118
119 add <name> [<loc>] add current place or given location to
120 bookmarks and bind to given name
121 del <name> remove bookmark with name
122 edit start editor on bookmarks file
123 import <type> import foreign bookmarks
124 list list bookmarks (default)
125
126 cache [subcommand]
127
128 The cache command controls local memory cache. The following subcom‐
129 mands are recognized:
130
131 stat print cache status (default)
132
133 on|off turn on/off caching
134 flush flush cache
135 size lim set memory limit, -1 means unlimited
136 expire Nx set cache expiration time to N seconds (x=s) minutes (x=m)
137 hours (x=h) or days (x=d)
138
139 cat files
140
141 cat outputs the remote file(s) to stdout. (See also more, zcat and
142 zmore)
143
144 cd rdir
145
146 Change current remote directory. The previous remote directory is
147 stored as `-'. You can do `cd -' to change the directory back. The
148 previous directory for each site is also stored on disk, so you can do
149 `open site; cd -' even after lftp restart.
150
151 chmod [OPTS] mode files...
152
153 Change permission mask on remote files. The mode can be an octal number
154 or a symbolic mode (see chmod(1)).
155
156 -c, --changes like verbose but report only when a change is made
157 -f, --quiet suppress most error messages
158 -v, --verbose output a diagnostic for every file processed
159 -R, --recursive change files and directories recursively
160
161 close [-a]
162
163 Close idle connections. By default only with the current server, use
164 -a to close all idle connections.
165
166 cls [OPTS] files...
167
168 `cls' tries to retrieve information about specified files or directo‐
169 ries and outputs the information according to format options. The dif‐
170 ference between `ls' and `cls' is that `ls' requests the server to for‐
171 mat file listing, and `cls' formats it itself, after retrieving all the
172 needed information.
173
174 -1 single-column output
175 -a, --all show dot files
176 -B, --basename show basename of files only
177 --block-size=SIZ use SIZ-byte blocks
178 -d, --directory list directory entries instead of
179 contents
180 -F, --classify append indicator (one of /@) to
181 entries
182 -h, --human-readable print sizes in human readable format
183 (e.g., 1K)
184 --si likewise, but use powers of 1000 not
185 1024
186 -k, --kilobytes like --block-size=1024
187 -l, --long use a long listing format
188 -q, --quiet don't show status
189 -s, --size print size of each file
190 --filesize if printing size, only print size for
191 files
192 -i, --nocase case-insensitive pattern matching
193 -I, --sortnocase sort names case-insensitively
194 -D, --dirsfirst list directories first
195 --sort=OPT "name", "size", "date"
196 -S sort by file size
197 --user, --group,
198
199 --perms, --date,
200 --linkcount, --links show individual fields
201 --time-style=STYLE use specified time format
202
203 command cmd args...
204
205 execute given command ignoring aliases.
206
207 debug [OPTS] level|off
208
209 Switch debugging to level or turn it off. Options:
210
211 -T truncate output file
212 -o <file> redirect debug output to the file
213 -c show message context
214 -p show PID
215 -t show timestamps
216
217 du [OPTS] path...
218
219 Summarize disk usage. Options:
220
221 -a, --all write counts for all files, not just
222 directories
223 --block-size=SIZ use SIZ-byte blocks
224 -b, --bytes print size in bytes
225 -c, --total produce a grand total
226 -d, --max-depth=N print the total for a directory (or file,
227 with --all) only if it is N or fewer lev‐
228 els below the command line argument;
229 --max-depth=0 is the same as --summarize
230 -F, --files print number of files instead of sizes
231 -h, --human-readable print sizes in human readable format
232 (e.g., 1K 234M 2G)
233 -H, --si likewise, but use powers of 1000 not 1024
234 -k, --kilobytes like --block-size=1024
235 -m, --megabytes like --block-size=1048576
236 -S, --separate-dirs do not include size of subdirectories
237 -s, --summarize display only a total for each argument
238 --exclude=PAT exclude files that match PAT
239
240 echo [-n] string
241
242 Prints (echos) the given string to the display.
243
244 edit [OPTS] file
245
246 Retrieve remote file to a temporary location, run a local editor on it
247 and upload the file back if changed. Options:
248
249 -k keep the temporary file
250 -o <temp> explicit temporary file location
251
252 eval [-f format ] args...
253
254 without -f it executes given arguments as a command. With -f, arguments
255 are transformed into a new command. The format can contain plain text
256 and placeholders $0...$9 and $@, corresponding to the arguments.
257
258 exit [bg] [top] [parent] [kill] [code]
259
260 exit will exit from lftp or move to background if there are active
261 jobs. If no job is active, code is passed to operating system as lftp's
262 termination status. If code is omitted, the exit code of last command
263 is used.
264
265 `exit bg' forces moving to background when cmd:move-background is
266 false. `exit top' makes top level `shell' (internal lftp command
267 executor) terminate. `exit parent' terminates the parent shell when
268 running a nested script. `exit kill' kills all numbered jobs before
269 exiting. The options can be combined, e.g. `at 08:00 -- exit top kill
270 &' kills all jobs and makes lftp exit at specified time.
271
272 fg
273
274 Alias for `wait'.
275
276 find [OPTS] directory...
277
278 List files in the directory (current directory by default) recursively.
279 This can help with servers lacking ls -R support. You can redirect out‐
280 put of this command. Options:
281
282 -d MD, --max-depth=MD specify maximum scan depth
283 -l, --ls use long listing format
284
285 ftpcopy
286
287 Obsolete. Use one of the following instead:
288 get ftp://... -o ftp://...
289 get -O ftp://... file1 file2...
290 put ftp://...
291 mput ftp://.../*
292 mget -O ftp://... ftp://.../*
293 or other combinations to get FXP transfer (directly between two FTP
294 servers). lftp would fallback to plain copy (via client) if FXP trans‐
295 fer cannot be initiated or ftp:use-fxp is false.
296
297 get [-E] [-a] [-c] [-e] [-P N] [-O base] rfile [-o lfile] ...
298
299 Retrieve the remote file rfile and store it as the local file lfile.
300 If -o is omitted, the file is stored to local file named as base name
301 of rfile. You can get multiple files by specifying multiple instances
302 of rfile (and -o lfile). Does not expand wildcards, use mget for that.
303
304 -c continue, reget
305 -E delete source files after successful transfer
306 -e delete target file before the transfer
307 -a use ascii mode (binary is the default)
308 -P N download N files in parallel
309 -O <base> specifies base directory or URL where files should
310 be placed
311
312 Examples:
313 get README
314 get README -o debian.README
315 get README README.mirrors
316 get README -o debian.README README.mirrors -o debian.mirrors
317 get README -o ftp://some.host.org/debian.README
318 get README -o ftp://some.host.org/debian-dir/ (end slash is important)
319
320 get1 [OPTS] rfile
321
322 Transfer a single file. Options:
323
324 -o <lfile> destination file name (default - base‐
325 name of rfile)
326 -c continue, reget
327 -E delete source files after successful
328 transfer
329 -a use ascii mode (binary is the default)
330
331 -d create the directory of the target file
332 --source-region=<from-to> transfer specified region of source
333 file
334 --target-position=<pos> position in target file to write data
335 at
336
337 glob [OPTS] [command] patterns
338
339 Glob given patterns containing metacharacters and pass result to given
340 command or return appropriate exit code.
341
342 -f plain files (default)
343 -d directories
344 -a all types
345 --exist return zero exit code when the patterns expand to non-empty list
346 --not-exist return zero exit code when the patterns expand to an empty list
347
348 Examples:
349 glob echo *
350 glob --exist *.csv && echo "There are *.csv files"
351
352 help [cmd]
353
354 Print help for cmd or if no cmd was specified print a list of available
355 commands.
356
357 history [OPTS] [cnt]
358
359 View or manipulate the command history. Optional argument cnt speci‐
360 fies the number of history lines to list, or "all" to list all entries.
361 Options:
362
363 -w <file> Write history to file.
364 -r <file> Read history from file; appends to current history.
365 -c Clear the history.
366 -l List the history (default).
367
368 jobs [OPTS] [job_no...]
369
370 List running jobs. If job_no is specified, only list a job with that
371 number. Options:
372
373 -v verbose, several -v increase verbosity
374 -r list just one specified job without recursion
375
376 kill all|job_no
377
378 Delete specified job with job_no or all jobs. (For job_no see jobs)
379
380 lcd ldir
381
382 Change current local directory ldir. The previous local directory is
383 stored as `-'. You can do `lcd -' to change the directory back.
384
385 ln [-s] existing-file new-link
386
387 Make a hard/symbolic link to an existing file. Option -s selects cre‐
388 ation of a symbolic link.
389
390 local command
391
392 Run specified command with local directory file:// session instead of
393 remote session. Examples:
394 local pwd
395 local ls
396 local mirror /dir1 /dir2
397
398 lpwd
399
400 Print current working directory on local machine.
401
402 ls params
403
404 List remote files. You can redirect output of this command to file or
405 via pipe to external command. By default, ls output is cached, to see
406 new listing use rels or cache flush.
407
408 mget [-c] [-d] [-a] [-E] [-e] [-P N] [-O base] files
409
410 Gets selected files with expanded wildcards.
411
412 -c continue, reget.
413 -d create directories the same as file names and get
414 the files into them instead of current directory.
415 -E delete source files after successful transfer
416 -e delete target file before the transfer
417 -a use ascii mode (binary is the default)
418 -P N download N files in parallel
419 -O <base> specifies base directory or URL where files should
420 be placed
421
422 mirror [OPTS] [source [target]]
423
424 Mirror specified source directory to the target directory.
425
426 By default the source is remote and the target is a local directory.
427 When using -R, the source directory is local and the target is remote.
428 If the target directory is omitted, base name of the source directory
429 is used. If both directories are omitted, current local and remote
430 directories are used.
431
432 The source and/or the target may be URLs pointing to directories.
433
434 If the target directory ends with a slash (except the root directory)
435 then base name of the source directory is appended.
436
437 -c, --continue continue a mirror job if
438 possible
439 -e, --delete delete files not present at
440 the source
441 --delete-excluded delete files excluded at the
442 target
443 --delete-first delete old files before
444 transferring new ones
445 --depth-first descend into subdirectories
446 before transferring files
447 --scan-all-first scan all directories recur‐
448 sively before transferring
449 files
450 -s, --allow-suid set suid/sgid bits according
451 to the source
452 --allow-chown try to set owner and group
453 on files
454 --ascii use ascii mode transfers
455 (implies --ignore-size)
456 --ignore-time ignore time when deciding
457 whether to download
458 --ignore-size ignore size when deciding
459 whether to download
460 --only-missing download only missing files
461
462
463 --only-existing download only files already
464 existing at target
465 -n, --only-newer download only newer files
466 (-c won't work)
467 --upload-older upload even files older than
468 the target ones
469 --transfer-all transfer all files, even
470 seemingly the same at the
471 target site
472 --no-empty-dirs don't create empty directo‐
473 ries (implies --depth-first)
474 -r, --no-recursion don't go to subdirectories
475 --recursion=MODE go to subdirectories on a
476 condition
477 --no-symlinks don't create symbolic links
478 -p, --no-perms don't set file permissions
479 --no-umask don't apply umask to file
480 modes
481 -R, --reverse reverse mirror (put files)
482 -L, --dereference download symbolic links as
483 files
484 --overwrite overwrite plain files with‐
485 out removing them first
486 --no-overwrite remove and re-create plain
487 files instead of overwriting
488 -N, --newer-than=SPEC download only files newer
489 than specified time
490 --older-than=SPEC download only files older
491 than specified time
492 --size-range=RANGE download only files with
493 size in specified range
494 -P, --parallel[=N] download N files in parallel
495 --use-pget[-n=N] use pget to transfer every
496 single file
497 --on-change=CMD execute the command if any‐
498 thing has been changed
499 --loop repeat mirror until no
500 changes found
501 -i RX, --include=RX include matching files
502 -x RX, --exclude=RX exclude matching files
503 -I GP, --include-glob=GP include matching files
504 -X GP, --exclude-glob=GP exclude matching files
505 --include-rx-from=FILE
506 --exclude-rx-from=FILE
507 --include-glob-from=FILE
508 --exclude-glob-from=FILE load include/exclude pat‐
509 terns from the file, one per
510 line
511 -f FILE, --file=FILE mirror a single file or
512 globbed group (e.g.
513 /path/to/*.txt)
514 -F DIR, --directory=DIR mirror a single directory or
515 globbed group (e.g.
516 /path/to/dir*)
517 -O DIR, --target-directory=DIR target base path or URL
518 -v, --verbose[=level] verbose operation
519 --log=FILE write lftp commands being
520 executed to FILE
521 --script=FILE write lftp commands to FILE,
522 but don't execute them
523 --just-print, --dry-run same as --script=-
524 --max-errors=N stop after this number of
525 errors
526 --skip-noaccess don't try to transfer files
527 with no read access.
528
529 --use-cache use cached directory list‐
530 ings
531 --Remove-source-files remove source files after
532 transfer (use with caution)
533 --Remove-source-dirs remove source files and
534 directories after transfer
535 (use with caution). Top
536 level directory is not
537 removed if it's name ends
538 with a slash.
539 --Move same as --Remove-source-dirs
540 -a same as --allow-chown
541 --allow-suid --no-umask
542 RX is an extended regular expression, just like in egrep(1).
543
544 GP is a glob pattern, e.g. `*.zip'.
545
546 Include and exclude options can be specified multiple times. It means
547 that a file or directory would be mirrored if it matches an include and
548 does not match to excludes after the include, or does not match any‐
549 thing and the first check is exclude. Directories are matched with a
550 slash appended.
551
552 Note that symbolic links are not created when uploading to remote
553 server, because FTP protocol cannot do it. To upload files the links
554 refer to, use `mirror -RL' command (treat symbolic links as files).
555
556 For options --newer-than and --older-than you can either specify a file
557 or time specification like that used by at(1) command, e.g.
558 `now-7days' or `week ago'. If you specify a file, then modification
559 time of that file will be used.
560
561 Verbosity level can be selected using --verbose=level option or by sev‐
562 eral -v options, e.g. -vvv. Levels are:
563 0 - no output (default)
564 1 - print actions
565 2 - +print not deleted file names (when -e is not specified)
566 3 - +print directory names which are mirrored
567
568 --only-newer turns off file size comparison and uploads/downloads only
569 newer files even if size is different. By default older files are
570 transferred and replace newer ones.
571
572 --upload-older allows replacing newer remote files with older ones
573 (when the target side is remote). Some remote back-ends cannot preserve
574 timestamps so the default is to keep newer files.
575
576 Recursion mode can be one of `always', `never', `missing', `newer'.
577 With the option `newer' mirror compares timestamps of directories and
578 enters a directory only if it is older or missing on the target side.
579 Be aware that when a file changes the directory timestamp may stay the
580 same, so mirror won't process that directory.
581
582 The options --file and --directory may be used multiple times and even
583 mixed provided that base directories of the paths are the same.
584
585 You can mirror between two servers if you specify URLs instead of
586 directories. FXP is automatically used for transfers between FTP
587 servers, if possible.
588
589 Some FTP servers hide dot-files by default (e.g. .htaccess), and show
590 them only when LIST command is used with -a option. In such case try to
591 use `set ftp:list-options -a'.
592
593 The recursion modes `newer' and `missing' conflict with
594 --scan-all-first, --depth-first, --no-empty-dirs and setting mir‐
595 ror:no-empty-dirs=true.
596
597 mkdir [-p] [-f] dir(s)
598
599 Make remote directories. If -p is used, make all components of paths.
600 The -f option makes mkdir quiet and suppresses messages.
601
602 module module [ args ]
603
604 Load given module using dlopen(3) function. If module name does not
605 contain a slash, it is searched in directories specified by module:path
606 variable. Arguments are passed to module_init function. See
607 README.modules for technical details.
608
609 more files
610
611 Same as `cat files | more'. if PAGER is set, it is used as filter.
612 (See also cat, zcat and zmore)
613
614 mput [-c] [-d] [-a] [-E] [-e] [-P N] [-O base] files
615
616 Upload files with wildcard expansion. By default it uses the base name
617 of local name as remote one. This can be changed by `-d' option.
618
619 -c continue, reput
620 -d create directories the same as in file names and put
621 the files into them instead of current directory
622 -E delete source files after successful transfer (dan‐
623 gerous)
624 -e delete target file before the transfer
625 -a use ascii mode (binary is the default)
626 -P N upload N files in parallel
627 -O <base> specifies base directory or URL where files should
628 be placed
629
630 mrm file(s)
631
632 Same as `glob rm'. Removes specified file(s) with wildcard expansion.
633
634 mmv [-O directory] file(s) directory
635
636 Move specified files to a target directory. The target directory can be
637 specified after -O option or as the last argument.
638
639 -O <dir> specifies the target directory where files should be
640 placed
641
642 mv file1 file2
643
644 Rename file1 to file2. No wildcard exmapsion is performed. If you give
645 more than two arguments, or the last argument ends with a slash, then
646 mmv command is executed instead.
647
648 nlist [args]
649
650 List remote file names
651
652 open [OPTS] site
653
654 Select a server by host name, URL or bookmark. When an URL or bookmark
655 is given, automatically change the current working directory to the
656 directory of the URL. Options:
657
658 -e cmd execute the command just after selecting the server
659 -u user[,pass] use the user/password for authentication
660
661 -p port use the port for connection
662 -s slot assign the connection to this slot
663 -d enable debug
664 -B don't look up bookmarks
665 --user user use the user for authentication
666 --password pass use the password for authentication
667 --env-password take password from LFTP_PASSWORD environment variable
668 site host name, URL or bookmark name
669
670 pget [OPTS] rfile [-o lfile]
671
672 Gets the specified file using several connections. This can speed up
673 transfer, but loads the net and server heavily impacting other users.
674 Use only if you really have to transfer the file ASAP. Options:
675
676 -c continue transfer. Requires lfile.lftp-pget-status
677 file.
678 -n maxconn set maximum number of connections (default is taken
679 from pget:default-n setting)
680
681 put [-E] [-a] [-c] [-e] [-P N] [-O base] lfile [-o rfile]
682
683 Upload lfile with remote name rfile. If -o omitted, the base name of
684 lfile is used as remote name. Does not expand wildcards, use mput for
685 that.
686
687 -o <rfile> specifies remote file name (default - basename of
688 lfile)
689 -c continue, reput. It requires permission to over‐
690 write remote files
691 -E delete source files after successful transfer (dan‐
692 gerous)
693 -e delete target file before the transfer
694 -a use ascii mode (binary is the default)
695 -P N upload N files in parallel
696 -O <base> specifies base directory or URL where files should
697 be placed
698
699 pwd [-p]
700
701 Print current remote URL. Use `-p' option to show password in the URL.
702
703 queue [-n num ] cmd
704
705 Add the given command to queue for sequential execution. Each site has
706 its own queue. `-n' adds the command before the given item in the
707 queue. Don't try to queue `cd' or `lcd' commands, it may confuse lftp.
708 Instead do the cd/lcd before `queue' command, and it will remember the
709 place in which the command is to be done. It is possible to queue up an
710 already running job by `queue wait <jobno>', but the job will continue
711 execution even if it is not the first in queue.
712
713 `queue stop' will stop the queue, it will not execute any new commands,
714 but already running jobs will continue to run. You can use `queue stop'
715 to create an empty stopped queue. `queue start' will resume queue exe‐
716 cution. When you exit lftp, it will start all stopped queues automati‐
717 cally.
718
719 `queue' with no arguments will either create a stopped queue or print
720 queue status.
721
722 queue --delete|-d [index or wildcard expression]
723
724 Delete one or more items from the queue. If no argument is given, the
725 last entry in the queue is deleted.
726
727 queue --move|-m <index or wildcard expression> [index]
728
729 Move the given items before the given queue index, or to the end if no
730 destination is given.
731
732 -q Be quiet.
733 -v Be verbose.
734 -Q Output in a format that can be used to re-queue. Useful
735 with --delete.
736
737 Examples:
738 > get file &
739 [1] get file
740 > queue wait 1
741 > queue get another_file
742 > cd a_directory
743 > queue get yet_another_file
744
745 queue -d 3 Delete the third item in the queue.
746 queue -m 6 4 Move the sixth item in the queue before
747 the fourth.
748 queue -m "get*zip" 1 Move all commands matching "get*zip" to
749 the beginning of the queue. (The order
750 of the items is preserved.)
751 queue -d "get*zip" Delete all commands matching "get*zip".
752
753 quote cmd
754
755 For FTP - send the command uninterpreted. Use with caution - it can
756 lead to unknown remote state and thus will cause reconnect. You cannot
757 be sure that any change of remote state because of quoted command is
758 solid - it can be reset by reconnect at any time.
759
760 For HTTP - specific to HTTP action. Syntax: ``quote <command>
761 [<args>]''. Command may be ``set-cookie'' or ``post''.
762 open http://www.site.net
763 quote set-cookie "variable=value; othervar=othervalue"
764 set http:post-content-type application/x-www-form-urlencoded
765 quote post /cgi-bin/script.cgi "var=value&othervar=othervalue" > local_file
766
767 For FISH - send the command uninterpreted. This can be used to execute
768 arbitrary commands on server. The command must not take input or print
769 ### at new line beginning. If it does, the protocol will become out of
770 sync.
771 open fish://server
772 quote find -name \*.zip
773
774 reget rfile [-o lfile]
775
776 Same as `get -c'.
777
778 rels [args]
779
780 Same as `ls', but ignores the cache.
781
782 renlist [args]
783
784 Same as `nlist', but ignores the cache.
785
786 repeat [OPTS] [[-d] delay] [command]
787
788 Repeat specified command with a delay between iterations. Default
789 delay is one second, default command is empty.
790
791 -c <count> maximum number of iterations
792
793 -d <delay> delay between iterations
794 --while-ok stop when command exits with non-zero code
795 --until-ok stop when command exits with zero code
796 --weak stop when lftp moves to background.
797
798 Examples:
799 repeat at tomorrow -- mirror
800 repeat 1d mirror
801
802 reput lfile [-o rfile]
803
804 Same as `put -c'.
805
806 rm [-r] [-f] files
807
808 Remove remote files. Does not expand wildcards, use mrm for that. -r
809 is for recursive directory remove. Be careful, if something goes wrong
810 you can lose files. -f suppress error messages.
811
812 rmdir dir(s)
813
814 Remove remote directories.
815
816 scache [session]
817
818 List cached sessions or switch to specified session.
819
820 set [var [val]]
821
822 Set variable to given value. If the value is omitted, unset the vari‐
823 able. Variable name has format ``name/closure'', where closure can
824 specify exact application of the setting. See below for details. If
825 set is called with no variable then only altered settings are listed.
826 It can be changed by options:
827
828 -a list all settings, including default values
829 -d list only default values, not necessary current ones
830
831 site site_cmd
832
833 Execute site command site_cmd and output the result. You can redirect
834 its output.
835
836 sleep interval
837
838 Sleep given time interval and exit. Interval is in seconds by default,
839 but can be suffixed with 'm', 'h', 'd' for minutes, hours and days
840 respectively. See also at.
841
842 slot [name]
843
844 Select specified slot or list all slots allocated. A slot is a connec‐
845 tion to a server, somewhat like a virtual console. You can create mul‐
846 tiple slots connected to different servers and switch between them. You
847 can also use slot:name as a pseudo-URL evaluating to that slot loca‐
848 tion.
849
850 Default readline binding allows quick switching between slots named 0-9
851 using Meta-0 - Meta-9 keys (often you can use Alt instead of Meta).
852
853 source file
854 source -e command
855
856 Execute commands recorded in file file or returned by specified exter‐
857 nal command.
858 source ~/.lftp/rc
859 source -e echo help
860
861 suspend
862
863 Stop lftp process. Note that transfers will be also stopped until you
864 continue the process with shell's fg or bg commands.
865
866 torrent [OPTS] torrent-files...
867
868 Start BitTorrent process for the given torrent-files, which can be a
869 local file, URL, magnet link or plain info_hash written in hex or
870 base32. Local wildcards are expanded. Existing files are first vali‐
871 dated unless --force-valid option is given. Missing pieces are down‐
872 loaded. Files are stored in specified directory or current working
873 directory by default. Seeding continues until ratio reaches tor‐
874 rent:stop-on-ratio setting or time of torrent:seed-max-time runs out.
875
876 Options:
877
878 -O <directory> specifies base directory where files
879 should be placed
880 --force-valid skip file validation (if you are sure
881 they are ok).
882 --only-new stop if the metadata is known already
883 or the torrent is complete.
884 --only-incomplete stop if the torrent is already com‐
885 plete.
886 --dht-bootstrap=<node> bootstrap DHT by sending a query to
887 specified node. This option should be
888 used just once to fill the local node
889 cache. Port number may be given after
890 colon, default is 6881. Here are some
891 nodes for bootstrapping: dht.transmis‐
892 sionbt.com, router.utorrent.com,
893 router.bittorrent.com.
894 --share share specified file or directory using
895 BitTorrent protocol. Magnet link is
896 printed when it's ready.
897
898 user user [pass]
899 user URL [pass]
900
901 Use specified info for remote login. If you specify an URL with user
902 name, the entered password will be cached so that future URL references
903 can use it.
904
905 version
906
907 Print lftp version.
908
909 wait [jobno]
910 wait all
911
912 Wait for specified job to terminate. If jobno is omitted, wait for last
913 backgrounded job.
914
915 `wait all' waits for all jobs to terminate.
916
917 zcat files
918
919 Same as cat, but filter each file through zcat. (See also cat, more and
920 zmore)
921
922 zmore files
923
924 Same as more, but filter each file through zcat. (See also cat, zcat
925 and more)
926
927
928 Settings
929 On startup, lftp executes ~/.lftprc and ~/.lftp/rc (or ~/.con‐
930 fig/lftp/rc if ~/.lftp does not exist). You can place aliases and
931 `set' commands there. Some people prefer to see full protocol debug,
932 use `debug' to turn the debug on.
933
934 There is also a system-wide startup file in /etc/lftp.conf. It can be
935 in different directory, see FILES section.
936
937 lftp has the following settable variables (you can also use `set -a' to
938 see all variables and their values):
939
940 bmk:save-passwords (boolean)
941 save plain text passwords in ~/.local/share/lftp/bookmarks or
942 ~/.lftp/bookmarks on `bookmark add' command. Off by default.
943
944 cache:cache-empty-listings (boolean)
945 When false, empty listings are not cached.
946
947 cache:enable (boolean)
948 When false, cache is disabled.
949
950 cache:expire (time interval)
951 Positive cache entries expire in this time interval.
952
953 cache:expire-negative (time interval)
954 Negative cache entries expire in this time interval.
955
956 cache:size (number)
957 Maximum cache size. When exceeded, oldest cache entries will be
958 removed from cache.
959
960 cmd:at-exit (string)
961 the commands in string are executed before lftp exits or moves
962 to background.
963
964 cmd:at-exit-bg (string)
965 the commands in string are executed before backgrounded lftp
966 exits.
967
968 cmd:at-exit-fg (string)
969 the commands in string are executed before foreground lftp
970 exits.
971
972 cmd:at-background (string)
973 the commands in string are executed before lftp moves to back‐
974 ground.
975
976 cmd:at-terminate (string)
977 the commands in string are executed before lftp terminates
978 (either backgrounded or foreground).
979
980 cmd:at-finish (string)
981 the commands in string are executed once when all jobs are done.
982
983 cmd:at-queue-finish (string)
984 the commands in string are executed once when all jobs in a
985 queue are done.
986
987 cmd:cls-completion-default (string)
988 default cls options for displaying completion choices. For exam‐
989 ple, to make completion listings show file sizes, set cmd:cls-
990 completion-default to `-s'.
991
992 cmd:cls-default (string)
993 default cls command options. They can be overridden by explic‐
994 itly given options.
995
996 cmd:cls-exact-time (boolean)
997 when true, cls would try to get exact file modification time
998 even if it means more requests to the server.
999
1000 cmd:csh-history (boolean)
1001 enables csh-like history expansion.
1002
1003 cmd:default-protocol (string)
1004 The value is used when `open' is used with just host name with‐
1005 out protocol. Default is `ftp'.
1006
1007 cmd:fail-exit (boolean)
1008 if true, exit when a command fails and the following command is
1009 unconditional (i.e. does not begin with || or &&). lftp exits
1010 after the unconditional command is issued without executing it.
1011
1012 cmd:interactive (tri-boolean)
1013 when true, lftp acts interactively, handles terminal signals and
1014 outputs some extra messages. Default is auto and depends on
1015 stdin being a terminal.
1016
1017 cmd:long-running (seconds)
1018 time of command execution, which is considered as `long' and a
1019 beep is done before next prompt. 0 means off.
1020
1021 cmd:ls-default (string)
1022 default ls argument
1023
1024 cmd:move-background (boolean)
1025 when false, lftp refuses to go to background when exiting. To
1026 force it, use `exit bg'.
1027
1028 cmd:move-background-detach (boolean)
1029 when true (default), lftp detaches itself from the control ter‐
1030 minal when moving to background, it is possible to attach back
1031 using `attach' command; when false, lftp tricks the shell to
1032 move lftp to background process group and continues to run, then
1033 fg shell command brings lftp back to foreground unless it has
1034 done all jobs and terminated.
1035
1036 cmd:prompt (string)
1037 The prompt. lftp recognizes the following backslash-escaped spe‐
1038 cial characters that are decoded as follows:
1039 \@ insert @ if the current remote site user is not default
1040 \a an ASCII bell character (07)
1041 \e an ASCII escape character (033)
1042 \h the remote hostname you are connected to
1043 \n newline
1044 \s the name of the client (lftp)
1045 \S current slot name
1046 \u the username of the remote site user you are logged in as
1047 \U the URL of the remote site (e.g.,
1048 ftp://g437.ub.gu.se/home/james/src/lftp)
1049 \v the version of lftp (e.g., 2.0.3)
1050 \w the current working directory at the remote site
1051 \W the base name of the current working directory at the
1052 remote site
1053 \l the current working directory at the local site
1054 \L the base name of the current working directory at the
1055 local site
1056 \nnn the character corresponding to the octal number nnn
1057 \\ a backslash
1058 \? skips next character if previous substitution was empty.
1059 \[ begin a sequence of non-printing characters, which could
1060 be used to embed a terminal control sequence into the
1061 prompt
1062 \] end a sequence of non-printing characters
1063
1064
1065 cmd:parallel (number)
1066 Number of jobs run in parallel in non-interactive mode. For
1067 example, this may be useful for scripts with multiple `get' com‐
1068 mands. Note that setting this to a value greater than 1 changes
1069 conditional execution behaviour, basically makes it inconsis‐
1070 tent.
1071
1072 cmd:queue-parallel (number)
1073 Number of jobs run in parallel in a queue.
1074
1075 cmd:remote-completion (boolean)
1076 a boolean to control whether or not lftp uses remote completion.
1077 When true, Tab key guesses if the word being completed should be
1078 a remote file name. Meta-Tab does remote completion always. So
1079 you can force remote completion with Meta-Tab when cmd:remote-
1080 completion is false or when the guess is wrong.
1081
1082 cmd:save-cwd-history (boolean)
1083 when true, lftp saves last CWD of each site to
1084 ~/.local/share/lftp/cwd_history or ~/.lftp/cwd_history, allowing
1085 to do ``cd -'' after lftp restart. Default is true.
1086
1087 cmd:save-rl-history (boolean)
1088 when true, lftp saves readline history to
1089 ~/.local/share/lftp/rl_history or ~/.lftp/rl_history on exit.
1090 Default is true.
1091
1092 cmd:show-status (boolean)
1093 when false, lftp does not show status line on terminal. Default
1094 is true.
1095
1096 cmd:set-term-status (boolean)
1097 when true, lftp updates terminal status if supported (e.g.
1098 xterm). The closure for this setting is the terminal type from
1099 TERM environment variable.
1100
1101 cmd:status-interval (timeinterval)
1102 the time interval between status updates.
1103
1104 cmd:stifle-rl-history (number)
1105 the number of lines to keep in readline history.
1106
1107 cmd:term-status (string)
1108 the format string to use to display terminal status. The closure
1109 for this setting is the terminal type from TERM environment
1110 variable. Default uses ``tsl'' and ``fsl'' termcap values.
1111
1112 The following escapes are supported:
1113
1114 \a bell
1115 \e escape
1116 \n new line
1117 \s "lftp"
1118 \v lftp version
1119 \T the status string
1120
1121 cmd:time-style (string)
1122 This setting is the default value for cls --time-style option.
1123
1124 cmd:trace (boolean)
1125 when true, lftp prints the commands it executes (like sh -x).
1126
1127 cmd:verify-host (boolean)
1128 if true, lftp resolves host name immediately in `open' command.
1129 It is also possible to skip the check for a single `open' com‐
1130 mand if `&' is given, or if ^Z is pressed during the check.
1131
1132 cmd:verify-path (boolean)
1133 if true, lftp checks the path given in `cd' command. It is also
1134 possible to skip the check for a single `cd' command if `&' is
1135 given, or if ^Z is pressed during the check. Examples:
1136 set cmd:verify-path/hftp://* false
1137 cd directory &
1138
1139 cmd:verify-path-cached (boolean)
1140 When false, `cd' to a directory known from cache as existent
1141 will succeed immediately. Otherwise the verification will
1142 depend on cmd:verify-path setting.
1143
1144 color:use-color (tri-boolean)
1145 when true, cls command and completion output colored file list‐
1146 ings according to color:dir-colors setting. When set to auto,
1147 colors are used when output is a terminal.
1148
1149 color:dir-colors (string)
1150 file listing color description. By default the value of LS_COL‐
1151 ORS environment variable is used. See dircolors(1).
1152
1153 dns:SRV-query (boolean)
1154 query for SRV records and use them before gethostbyname. The SRV
1155 records are only used if port is not explicitly specified. See
1156 RFC2052 for details.
1157
1158 dns:cache-enable (boolean)
1159 enable DNS cache. If it is off, lftp resolves host name each
1160 time it reconnects.
1161
1162 dns:cache-expire (time interval)
1163 time to live for DNS cache entries. It has format <num‐
1164 ber><unit>+, e.g. 1d12h30m5s or just 36h. To disable expira‐
1165 tion, set it to `inf' or `never'.
1166
1167 dns:cache-size (number)
1168 maximum number of DNS cache entries.
1169
1170 dns:fatal-timeout (time interval)
1171 limit the time for DNS queries. If DNS server is unavailable too
1172 long, lftp will fail to resolve a given host name. Set to
1173 `never' to disable.
1174
1175 dns:order (list of protocol names)
1176 sets the order of DNS queries. Default is ``inet6 inet'' which
1177 means first look up address in inet6 family, then inet and use
1178 them in that order. To disable inet6 (AAAA) lookup, set this
1179 variable to ``inet''.
1180
1181 dns:use-fork (boolean)
1182 if true, lftp will fork before resolving host address. Default
1183 is true.
1184
1185 dns:max-retries (number)
1186 If zero, there is no limit on the number of times lftp will try
1187 to lookup an address. If > 0, lftp will try only this number of
1188 times to look up an address of each address family in dns:order.
1189
1190 dns:name (string)
1191 This setting can be used to substitute a host name alias with
1192 another name or IP address. The host name alias is used as the
1193 setting closure, the substituted name or IP address is in the
1194 value. Multiple names or IP addresses can be separated by comma.
1195
1196 file:charset (string)
1197 local character set. It is set from current locale initially.
1198
1199 file:use-lock (boolean)
1200 when true, lftp uses advisory locking on local files when open‐
1201 ing them.
1202
1203 file:use-fallocate (boolean)
1204 when true, lftp uses fallocate(2) or posix_fallocate(3) to pre-
1205 allocate storage space and reduce file fragmentation in pget and
1206 torrent commands.
1207
1208 fish:auto-confirm (boolean)
1209 when true, lftp answers ``yes'' to all ssh questions, in partic‐
1210 ular to the question about a new host key. Otherwise it answers
1211 ``no''.
1212
1213 fish:charset (string)
1214 the character set used by fish server in requests, replies and
1215 file listings. Default is empty which means the same as local.
1216
1217 fish:connect-program (string)
1218 the program to use for connecting to remote server. It should
1219 support `-l' option for user name, `-p' for port number. Default
1220 is `ssh -a -x'. You can set it to `rsh', for example. For pri‐
1221 vate key authentication add `-i' option with the key file.
1222
1223 fish:shell (string)
1224 use specified shell on server side. Default is /bin/sh. On some
1225 systems, /bin/sh exits when doing cd to a non-existent direc‐
1226 tory. lftp can handle that but it has to reconnect. Set it to
1227 /bin/bash for such systems if bash is installed.
1228
1229 ftp:acct (string)
1230 Send this string in ACCT command after login. The result is
1231 ignored. The closure for this setting has format user@host.
1232
1233 ftp:anon-pass (string)
1234 sets the password used for anonymous FTP access authentication.
1235 Default is "lftp@".
1236
1237 ftp:anon-user (string)
1238 sets the user name used for anonymous FTP access authentication.
1239 Default is "anonymous".
1240
1241 ftp:auto-sync-mode (regex)
1242 if first server message matches this regex, turn on sync mode
1243 for that host.
1244
1245 ftp:catch-size (boolean)
1246 when there is no support for SIZE command, try to catch file
1247 size from the "150 Opening data connection" reply.
1248
1249 ftp:charset (string)
1250 the character set used by FTP server in requests, replies and
1251 file listings. Default is empty which means the same as local.
1252 This setting is only used when the server does not support UTF8.
1253
1254 ftp:client (string)
1255 the name of FTP client to send with CLNT command, if supported
1256 by server. If it is empty, then no CLNT command will be sent.
1257
1258 ftp:compressed-re (regex)
1259 files with matching name will be considered compressed and "MODE
1260 Z" will not be used for them.
1261
1262 ftp:bind-data-socket (boolean)
1263 bind data socket to the interface of control connection (in pas‐
1264 sive mode). Default is true, exception is the loopback inter‐
1265 face.
1266
1267 ftp:fix-pasv-address (boolean)
1268 if true, lftp will try to correct address returned by server for
1269 PASV command in case when server address is in public network
1270 and PASV returns an address from a private network. In this case
1271 lftp would substitute server address instead of the one returned
1272 by PASV command, port number would not be changed. Default is
1273 true.
1274
1275 ftp:fxp-passive-source (boolean)
1276 if true, lftp will try to set up source FTP server in passive
1277 mode first, otherwise destination one. If first attempt fails,
1278 lftp tries to set them up the other way. If the other disposi‐
1279 tion fails too, lftp falls back to plain copy. See also ftp:use-
1280 fxp.
1281
1282 ftp:home (string)
1283 Initial directory. Default is empty string which means auto. Set
1284 this to `/' if you don't like the look of %2F in FTP URLs. The
1285 closure for this setting has format user@host.
1286
1287 ftp:ignore-pasv-address (boolean)
1288 If true, lftp uses control connection address instead of the one
1289 returned in PASV reply for data connection. This can be useful
1290 for broken NATs. Default is false.
1291
1292 ftp:list-empty-ok (boolean)
1293 if set to false, empty lists from LIST command will be treated
1294 as incorrect, and another method (NLST) will be used.
1295
1296 ftp:list-options (string)
1297 sets options which are always appended to LIST command. It can
1298 be useful to set this to `-a' if server does not show dot (hid‐
1299 den) files by default. Default is empty.
1300
1301 ftp:mode-z-level (number)
1302 compression level (0-9) for uploading with MODE Z.
1303
1304 ftp:nop-interval (seconds)
1305 delay between NOOP commands when downloading tail of a file.
1306 This is useful for FTP servers which send "Transfer complete"
1307 message before flushing data transfer. In such cases NOOP com‐
1308 mands can prevent connection timeout.
1309
1310 ftp:passive-mode (boolean)
1311 sets passive FTP mode. This can be useful if you are behind a
1312 firewall or a dumb masquerading router. In passive mode lftp
1313 uses PASV command, not the PORT command which is used in active
1314 mode. In passive mode lftp itself makes the data connection to
1315 the server; in active mode the server connects to lftp for data
1316 transfer. Passive mode is the default.
1317
1318 ftp:port-ipv4 (ipv4 address)
1319 specifies an IPv4 address to send with PORT command. Default is
1320 empty which means to send the address of local end of control
1321 connection.
1322
1323 ftp:port-range (from-to)
1324 allowed port range for the local side of the data connection.
1325 Format is min-max, or `full' or `any' to indicate any port.
1326 Default is `full'.
1327
1328 ftp:prefer-epsv (boolean)
1329 use EPSV as preferred passive mode. Default is `false'.
1330
1331 ftp:proxy (URL)
1332 specifies FTP proxy to use. To disable proxy set this to empty
1333 string. Note that it is a FTP proxy which uses FTP protocol, not
1334 FTP over HTTP. Default value is taken from environment variable
1335 ftp_proxy if it starts with ``ftp://''. If your FTP proxy
1336 requires authentication, specify user name and password in the
1337 URL. If ftp:proxy starts with http:// then hftp protocol (FTP
1338 over HTTP proxy) is used instead of FTP automatically.
1339
1340 ftp:proxy-auth-type (string)
1341 When set to ``joined'', lftp sends ``user@proxy_user@ftp.exam‐
1342 ple.org'' as user name to proxy, and ``password@proxy_password''
1343 as password.
1344
1345 When set to ``joined-acct'', lftp sends ``user@ftp.example.org
1346 proxy_user'' (with space) as user name to proxy. The site pass‐
1347 word is sent as usual and the proxy password is expected in the
1348 following ACCT command.
1349
1350 When set to ``open'', lftp first sends proxy user and proxy
1351 password and then ``OPEN ftp.example.org'' followed by ``USER
1352 user''. The site password is then sent as usual.
1353
1354 When set to ``user'' (default), lftp first sends proxy user and
1355 proxy password and then ``user@ftp.example.org'' as user name.
1356 The site password is then sent as usual.
1357
1358 When set to ``proxy-user@host'', lftp first sends ``USER
1359 proxy_user@ftp.example.org'', then proxy password. The site user
1360 and password are then sent as usual.
1361
1362 ftp:rest-list (boolean)
1363 allow usage of REST command before LIST command. This might be
1364 useful for large directories, but some FTP servers silently
1365 ignore REST before LIST.
1366
1367 ftp:rest-stor (boolean)
1368 if false, lftp will not try to use REST before STOR. This can be
1369 useful for some buggy servers which corrupt (fill with zeros)
1370 the file if REST followed by STOR is used.
1371
1372 ftp:retry-530 (regex)
1373 Retry on server reply 530 for PASS command if text matches this
1374 regular expression. This setting should be useful to distin‐
1375 guish between overloaded server (temporary condition) and incor‐
1376 rect password (permanent condition).
1377
1378 ftp:retry-530-anonymous (regex)
1379 Additional regular expression for anonymous login, like
1380 ftp:retry-530.
1381
1382 ftp:site-group (string)
1383 Send this string in SITE GROUP command after login. The result
1384 is ignored. The closure for this setting has format user@host.
1385
1386 ftp:skey-allow (boolean)
1387 allow sending skey/opie reply if server appears to support it.
1388 On by default.
1389
1390 ftp:skey-force (boolean)
1391 do not send plain text password over the network, use skey/opie
1392 instead. If skey/opie is not available, assume failed login. Off
1393 by default.
1394
1395 ftp:ssl-allow (boolean)
1396 if true, try to negotiate SSL connection with FTP server for
1397 non-anonymous access. Default is true. This and other SSL set‐
1398 tings are only available if lftp was compiled with an ssl/tls
1399 library.
1400
1401 ftp:ssl-auth (string)
1402 the argument for AUTH command, can be one of SSL, TLS, TLS-P,
1403 TLS-C. See RFC4217 for explanations. By default TLS or SSL will
1404 be used, depending on FEAT reply.
1405
1406 ftp:ssl-data-use-keys (boolean)
1407 if true, lftp loads ssl:key-file for protected data connection
1408 too. When false, it does not, and the server can match data and
1409 control connections by session ID. Default is true.
1410
1411 ftp:ssl-force (boolean)
1412 if true, refuse to send password in clear when server does not
1413 support SSL. Default is false.
1414
1415 ftp:ssl-protect-data (boolean)
1416 if true, request SSL connection for data transfers. This pro‐
1417 vides privacy and transmission error correction. Was cpu-inten‐
1418 sive on old CPUs. Default is true.
1419
1420 ftp:ssl-protect-fxp (boolean)
1421 if true, request SSL connection for data transfer between two
1422 FTP servers in FXP mode. CPSV or SSCN command will be used in
1423 that case. If SSL connection fails for some reason, lftp would
1424 try unprotected FXP transfer unless ftp:ssl-force is set for any
1425 of the two servers. Default is true.
1426
1427 ftp:ssl-protect-list (boolean)
1428 if true, request SSL connection for file list transfers. Default
1429 is true.
1430
1431 ftp:ssl-use-ccc (boolean)
1432 if true, lftp would issue CCC command after logon, thus disable
1433 ssl protection layer on control connection.
1434
1435 ftp:stat-interval (time interval)
1436 interval between STAT commands. Default is 1 second.
1437
1438 ftp:strict-multiline (boolean)
1439 when true, lftp strictly checks for multiline reply format
1440 (expects it to end with the same code as it started with). When
1441 false, this check is relaxed.
1442
1443 ftp:sync-mode (boolean)
1444 if true, lftp will send one command at a time and wait for
1445 response. This might be useful if you are using a buggy FTP
1446 server or router. When it is off, lftp sends a pack of commands
1447 and waits for responses - it speeds up operation when round trip
1448 time is significant. Unfortunately it does not work with all
1449 FTP servers and some routers have troubles with it, so it is on
1450 by default.
1451
1452 ftp:timezone (string)
1453 Assume this timezone for time in listings returned by LIST com‐
1454 mand. This setting can be GMT offset [+|-]HH[:MM[:SS]] or any
1455 valid TZ value (e.g. Europe/Moscow or
1456 MSK-3MSD,M3.5.0,M10.5.0/3). The default is GMT. Set it to an
1457 empty value to assume local timezone specified by environment
1458 variable TZ.
1459
1460 ftp:too-many-re (regexp)
1461 Decrease the dynamic connection limit when 421 reply line
1462 matches this regular expression.
1463
1464 ftp:trust-feat (string)
1465 When true, assume that FEAT returned data are correct and don't
1466 use common protocol extensions like SIZE, MDTM, REST if they are
1467 not listed. Default is false.
1468
1469 ftp:use-abor (boolean)
1470 if false, lftp does not send ABOR command but closes data con‐
1471 nection immediately.
1472
1473 ftp:use-allo (boolean)
1474 when true, lftp sends ALLO command before uploading a file.
1475
1476 ftp:use-feat (boolean)
1477 when true (default), lftp uses FEAT command to determine
1478 extended features of ftp server.
1479
1480 ftp:use-fxp (boolean)
1481 if true, lftp will try to set up direct connection between two
1482 ftp servers.
1483
1484 ftp:use-hftp (boolean)
1485 when ftp:proxy points to an http proxy, this setting selects
1486 hftp method (GET, HEAD) when true, and CONNECT method when
1487 false. Default is true.
1488
1489 ftp:use-ip-tos (boolean)
1490 when true, lftp uses IPTOS_LOWDELAY for control connection and
1491 IPTOS_THROUGHPUT for data connections.
1492
1493 ftp:lang (boolean)
1494 the language selected with LANG command, if supported as indi‐
1495 cated by FEAT response. Default is empty which means server
1496 default.
1497
1498 ftp:use-mdtm (boolean)
1499 when true (default), lftp uses MDTM command to determine file
1500 modification time.
1501
1502 ftp:use-mdtm-overloaded (boolean)
1503 when true, lftp uses two argument MDTM command to set file modi‐
1504 fication time on uploaded files. Default is false.
1505
1506 ftp:use-mlsd (boolean)
1507 when true, lftp will use MLSD command for directory listing if
1508 supported by the server.
1509
1510 ftp:use-mode-z (boolean)
1511 when true, lftp will use "MODE Z" if supported by the server to
1512 perform compressed transfers.
1513
1514 ftp:use-pret (tri-boolean)
1515 When set to auto, usage of PRET command depends on FEAT server
1516 reply. Otherwise this setting tells whether to use it or not.
1517 PRET command informs the server about the file to be transferred
1518 before PORT or PASV commands, so that the server can adjust the
1519 data connection parameters.
1520
1521 ftp:use-site-idle (boolean)
1522 when true, lftp sends `SITE IDLE' command with net:idle argu‐
1523 ment. Default is false.
1524
1525 ftp:use-site-utime (boolean)
1526 when true, lftp sends 5-argument `SITE UTIME' command to set
1527 file modification time on uploaded files. Default is true.
1528
1529 ftp:use-site-utime2 (boolean)
1530 when true, lftp sends 2-argument `SITE UTIME' command to set
1531 file modification time on uploaded files. Default is true. If
1532 5-argument `SITE UTIME' is also enabled, 2-argument command is
1533 tried first.
1534
1535 ftp:use-size (boolean)
1536 when true (default), lftp uses SIZE command to determine file
1537 size.
1538
1539 ftp:use-stat (boolean)
1540 if true, lftp sends STAT command in FXP mode transfer to know
1541 how much data has been transferred. See also ftp:stat-interval.
1542 Default is true.
1543
1544 ftp:use-stat-for-list (boolean)
1545 when true, lftp uses STAT instead of LIST command. By default
1546 `.' is used as STAT argument. Using STAT, lftp avoids creating
1547 data connection for directory listing. Some servers require spe‐
1548 cial options for STAT, use ftp:list-options to specify them
1549 (e.g. -la).
1550
1551 ftp:use-telnet-iac (boolean)
1552 when true (default), lftp uses TELNET IAC command and follows
1553 TELNET protocol as specified in RFC959. When false, it does not
1554 follow TELNET protocol and thus does not double 255 (0xFF, 0377)
1555 character and does not prefix ABOR and STAT commands with TELNET
1556 IP+SYNCH signal.
1557
1558 ftp:use-tvfs (tri-boolean)
1559 When set to auto, usage of TVFS feature depends on FEAT server
1560 reply. Otherwise this setting tells whether to use it or not. In
1561 short, if a server supports TVFS feature then it uses unix-like
1562 paths.
1563
1564 ftp:use-utf8 (boolean)
1565 if true, lftp sends `OPTS UTF8 ON' to the server to activate
1566 UTF-8 encoding (if supported). Disable it if the file names have
1567 a different encoding and the server has a trouble with it.
1568
1569 ftp:use-quit (boolean)
1570 if true, lftp sends QUIT before disconnecting from ftp server.
1571 Default is true.
1572
1573 ftp:verify-address (boolean)
1574 verify that data connection comes from the network address of
1575 control connection peer. This can possibly prevent data connec‐
1576 tion spoofing which can lead to data corruption. Unfortunately,
1577 this can fail for certain ftp servers with several network
1578 interfaces, when they do not set outgoing address on data
1579 socket, so it is disabled by default.
1580
1581 ftp:verify-port (boolean)
1582 verify that data connection has port 20 (ftp-data) on its remote
1583 end. This can possibly prevent data connection spoofing by
1584 users of remote host. Unfortunately, too many windows and even
1585 unix ftp servers forget to set proper port on data connection,
1586 thus this check is off by default.
1587
1588 ftp:web-mode (boolean)
1589 disconnect after closing data connection. This can be useful for
1590 totally broken ftp servers. Default is false.
1591
1592 ftps:initial-prot (string)
1593 specifies initial PROT setting for FTPS connections. Should be
1594 one of: C, S, E, P, or empty. Default is empty which means
1595 unknown, so that lftp will use PROT command unconditionally. If
1596 PROT command turns out to be unsupported, then Clear mode would
1597 be assumed.
1598
1599 hftp:cache (boolean)
1600 allow server/proxy side caching for ftp-over-http protocol.
1601
1602 hftp:cache-control (string)
1603 specify corresponding HTTP request header.
1604
1605 hftp:decode (boolean)
1606 when true, lftp automatically decodes the entity in hftp proto‐
1607 col when Content-Encoding header value matches deflate, gzip,
1608 compress, x-gzip or x-compress.
1609
1610 hftp:proxy (URL)
1611 specifies HTTP proxy for FTP-over-HTTP protocol (hftp). The pro‐
1612 tocol hftp cannot work without a HTTP proxy, obviously. Default
1613 value is taken from environment variable ftp_proxy if it starts
1614 with ``http://'', otherwise from environment variable
1615 http_proxy. If your FTP proxy requires authentication, specify
1616 user name and password in the URL.
1617
1618 hftp:use-allprop (boolean)
1619 if true, lftp will send `<allprop/>' request body in `PROPFIND'
1620 requests, otherwise it will send an empty request body.
1621
1622 hftp:use-authorization (boolean)
1623 if set to off, lftp will send password as part of URL to the
1624 proxy. This may be required for some proxies (e.g. M-soft).
1625 Default is on, and lftp will send password as part of Authoriza‐
1626 tion header.
1627
1628 hftp:use-head (boolean)
1629 if set to off, lftp will try to use `GET' instead of `HEAD' for
1630 hftp protocol. While this is slower, it may allow lftp to work
1631 with some proxies which don't understand or mishandle ``HEAD
1632 ftp://'' requests.
1633
1634 hftp:use-mkcol (boolean)
1635 if set to off, lftp will try to use `PUT' instead of `MKCOL' to
1636 create directories with hftp protocol. Default is off.
1637
1638 hftp:use-propfind (boolean)
1639 if set to off, lftp will not try to use `PROPFIND' to get direc‐
1640 tory contents with hftp protocol and use `GET' instead. Default
1641 is off. When enabled, lftp will also use PROPPATCH to set file
1642 modification time after uploading.
1643
1644 hftp:use-range (boolean)
1645 when true, lftp will use Range header for transfer restart.
1646
1647 hftp:use-type (boolean)
1648 If set to off, lftp won't try to append `;type=' to URLs passed
1649 to proxy. Some broken proxies don't handle it correctly.
1650 Default is on.
1651
1652 http:accept, http:accept-charset, http:accept-encoding, http:accept-
1653 language (string)
1654 specify corresponding HTTP request headers.
1655
1656 http:authorization (string)
1657 the authorization to use by default, when no user is specified.
1658 The format is ``user:password''. Default is empty which means no
1659 authorization.
1660
1661 http:cache (boolean)
1662 allow server/proxy side caching.
1663
1664 http:cache-control (string)
1665 specify corresponding HTTP request header.
1666
1667 http:cookie (string)
1668 send this cookie to server. A closure is useful here:
1669 set cookie/www.somehost.com "param=value"
1670
1671 http:decode (boolean)
1672 when true, lftp automatically decodes the entity when Content-
1673 Encoding header value matches deflate, gzip, compress, x-gzip or
1674 x-compress.
1675
1676 http:post-content-type (string)
1677 specifies value of Content-Type HTTP request header for POST
1678 method. Default is ``application/x-www-form-urlencoded''.
1679
1680 http:proxy (URL)
1681 specifies HTTP proxy. It is used when lftp works over HTTP pro‐
1682 tocol. Default value is taken from environment variable
1683 http_proxy. If your proxy requires authentication, specify user
1684 name and password in the URL.
1685
1686 http:put-method (PUT or POST)
1687 specifies which HTTP method to use on put.
1688
1689 http:put-content-type (string)
1690 specifies value of Content-Type HTTP request header for PUT
1691 method.
1692
1693 http:referer (string)
1694 specifies value for Referer HTTP request header. Single dot `.'
1695 expands to current directory URL. Default is `.'. Set to empty
1696 string to disable Referer header.
1697
1698 http:set-cookies (boolean)
1699 if true, lftp modifies http:cookie variables when Set-Cookie
1700 header is received.
1701
1702 http:use-allprop (boolean)
1703 if true, lftp will send `<allprop/>' request body in `PROPFIND'
1704 requests, otherwise it will send an empty request body.
1705
1706 http:use-mkcol (boolean)
1707 if set to off, lftp will try to use `PUT' instead of `MKCOL' to
1708 create directories with HTTP protocol. Default is on.
1709
1710 http:use-propfind (boolean)
1711 if set to off, lftp will not try to use `PROPFIND' to get direc‐
1712 tory contents with HTTP protocol and use `GET' instead. Default
1713 is off. When enabled, lftp will also use PROPPATCH to set `Last-
1714 Modified' property after a file upload.
1715
1716 http:use-range (boolean)
1717 when true, lftp will use Range header for transfer restart.
1718
1719 http:user-agent (string)
1720 the string lftp sends in User-Agent header of HTTP request.
1721
1722 https:proxy (string)
1723 specifies https proxy. Default value is taken from environment
1724 variable https_proxy.
1725
1726 log:enabled (boolean)
1727 when true, the log messages are output. The closure for this and
1728 other `log:' variables is either `debug' for debug messages or
1729 `xfer' for transfer logging.
1730
1731 log:file (string)
1732 the target output file for logging. When empty, stderr is used.
1733
1734 log:level (number)
1735 the log verbosity level. Currently it's only defined for `debug'
1736 closure.
1737
1738 log:max-size (number)
1739 maximum size of the log file. When the size is reached, the file
1740 is renamed and started anew.
1741
1742 log:prefix-error (string)
1743
1744 log:prefix-note (string)
1745
1746 log:prefix-recv (string)
1747
1748 log:prefix-send (string)
1749 the prefixes for corresponding types of debug messages.
1750
1751 log:show-ctx (boolean)
1752
1753 log:show-pid (boolean)
1754
1755 log:show-time (boolean)
1756 select additional information in the log messages.
1757
1758 mirror:dereference (boolean)
1759 when true, mirror will dereference symbolic links by default.
1760 You can override it by --no-dereference option. Default if
1761 false.
1762
1763 mirror:exclude-regex (regex)
1764 specifies default exclusion pattern. You can override it by
1765 --include option.
1766
1767 mirror:include-regex (regex)
1768 specifies default inclusion pattern. It is used just after mir‐
1769 ror:exclude-regex is applied. It is never used if mir‐
1770 ror:exclude-regex is empty.
1771
1772 mirror:no-empty-dirs (boolean)
1773 when true, mirror doesn't create empty directories (like
1774 --no-empty-dirs option).
1775
1776 mirror:sort-by (string)
1777 specifies order of file transfers. Valid values are: name, name-
1778 desc, size, size-desc, date, date-desc. When the value is name
1779 or name-desc, then mirror:order setting also affects the order
1780 or transfers.
1781
1782 mirror:order (list of patterns)
1783 specifies order of file transfers when sorting by name. E.g.
1784 setting this to "*.sfv *.sum" makes mirror to transfer files
1785 matching *.sfv first, then ones matching *.sum and then all
1786 other files. To process directories after other files, add "*/"
1787 to the end of pattern list.
1788
1789 mirror:overwrite (boolean)
1790 when true, mirror will overwrite plain files instead of removing
1791 and re-creating them.
1792
1793 mirror:parallel-directories (boolean)
1794 if true, mirror will start processing of several directories in
1795 parallel when it is in parallel mode. Otherwise, it will trans‐
1796 fer files from a single directory before moving to other direc‐
1797 tories.
1798
1799 mirror:parallel-transfer-count (number)
1800 specifies number of parallel transfers mirror is allowed to
1801 start. You can override it with --parallel option. A closure
1802 can be matched against source or target host names, the minimum
1803 number greater than 0 is used.
1804
1805 mirror:require-source (boolean)
1806 When true, mirror requires a source directory to be specified
1807 explicitly, otherwise it is supposed to be the current direc‐
1808 tory.
1809
1810 mirror:set-permissions (boolean)
1811 When set to off, mirror won't try to copy file and directory
1812 permissions. You can override it by --perms option. Default is
1813 on.
1814
1815 mirror:skip-noaccess (boolean)
1816 when true, mirror does not try to download files which are obvi‐
1817 ously inaccessible by the permission mask. Default is false.
1818
1819 mirror:use-pget-n (number)
1820 specifies -n option for pget command used to transfer every sin‐
1821 gle file under mirror. A closure can be matched against source
1822 or target host names, the minimum number greater than 0 is used.
1823 When the value is less than 2, pget is not used.
1824
1825 module:path (string)
1826 colon separated list of directories to look for modules. Can be
1827 initialized by environment variable LFTP_MODULE_PATH. Default is
1828 `PKGLIBDIR/VERSION:PKGLIBDIR'.
1829
1830 net:connection-limit (number)
1831 maximum number of concurrent connections to the same site. 0
1832 means unlimited.
1833
1834 net:connection-limit-timer (time interval)
1835 increase the dynamic connection limit after this time interval.
1836
1837 net:connection-takeover (boolean)
1838 if true, foreground connections have priority over background
1839 ones and can interrupt background transfers to complete a fore‐
1840 ground operation.
1841
1842 net:idle (time interval)
1843 disconnect from server after this idle time. Default is 3 min‐
1844 utes.
1845
1846 net:limit-rate (bytes per second)
1847 limit transfer rate on data connection. 0 means unlimited. You
1848 can specify two numbers separated by colon to limit download and
1849 upload rate separately. Suffixes are supported, e.g. 100K means
1850 102400.
1851
1852 net:limit-max (bytes)
1853 limit accumulating of unused limit-rate. 0 means twice of limit-
1854 rate.
1855
1856 net:limit-total-rate (bytes per second)
1857 limit transfer rate of all connections in sum. 0 means unlim‐
1858 ited. You can specify two numbers separated by colon to limit
1859 download and upload rate separately. Note that sockets have
1860 receive buffers on them, this can lead to network link load
1861 higher than this rate limit just after transfer beginning. You
1862 can try to set net:socket-buffer to relatively small value to
1863 avoid this.
1864
1865 If you specify a closure, then rate limitation will be applied to sum
1866 of connections to a single matching host.
1867
1868 net:limit-total-max (bytes)
1869 limit accumulating of unused limit-total-rate. 0 means twice of
1870 limit-total-rate.
1871
1872 net:max-retries (number)
1873 the maximum number of sequential tries of an operation without
1874 success. 0 means unlimited. 1 means no retries.
1875
1876 net:no-proxy (string)
1877 contains comma separated list of domains for which proxy should
1878 not be used. Default is taken from environment variable
1879 no_proxy.
1880
1881 net:persist-retries (number)
1882 ignore this number of hard errors. Useful to login to buggy FTP
1883 servers which reply 5xx when there is too many users.
1884
1885 net:reconnect-interval-base (seconds)
1886 sets the base minimal time between reconnects. Actual interval
1887 depends on net:reconnect-interval-multiplier and number of
1888 attempts to perform an operation.
1889
1890 net:reconnect-interval-max (seconds)
1891 sets maximum reconnect interval. When current interval after
1892 multiplication by net:reconnect-interval-multiplier reaches this
1893 value (or exceeds it), it is reset back to net:reconnect-inter‐
1894 val-base.
1895
1896 net:reconnect-interval-multiplier (real number)
1897 sets multiplier by which base interval is multiplied each time
1898 new attempt to perform an operation fails. When the interval
1899 reaches maximum, it is reset to base value. See net:reconnect-
1900 interval-base and net:reconnect-interval-max.
1901
1902 net:socket-bind-ipv4 (ipv4 address)
1903 bind all IPv4 sockets to specified address. This can be useful
1904 to select a specific network interface to use. Default is empty
1905 which means not to bind IPv4 sockets, operating system will
1906 choose an address automatically using routing table.
1907
1908 net:socket-bind-ipv6 (ipv6 address)
1909 the same for IPv6 sockets.
1910
1911 net:socket-buffer (bytes)
1912 use given size for SO_SNDBUF and SO_RCVBUF socket options. 0
1913 means system default.
1914
1915 net:socket-maxseg (bytes)
1916 use given size for TCP_MAXSEG socket option. Not all operating
1917 systems support this option, but Linux does.
1918
1919 net:timeout (time interval)
1920 sets the network protocol timeout.
1921
1922 pget:default-n (number)
1923 default number of chunks to split the file to in pget.
1924
1925 pget:min-chunk-size (number)
1926 minimal chunk size to split the file to.
1927
1928 pget:save-status (time interval)
1929 save pget transfer status this often. Set to `never' to disable
1930 saving of the status file. The status is saved to a file with
1931 suffix .lftp-pget-status.
1932
1933 sftp:auto-confirm (boolean)
1934 when true, lftp answers ``yes'' to all ssh questions, in partic‐
1935 ular to the question about a new host key. Otherwise it answers
1936 ``no''.
1937
1938 sftp:charset (string)
1939 the character set used by SFTP server in file names and file
1940 listings. Default is empty which means the same as local. This
1941 setting is only used for SFTP protocol version prior to 4. Ver‐
1942 sion 4 and later always use UTF-8.
1943
1944 sftp:connect-program (string)
1945 the program to use for connecting to remote server. It should
1946 support `-l' option for user name, `-p' for port number. Default
1947 is `ssh -a -x'. For private key authentication add `-i' option
1948 with the key file.
1949
1950 sftp:max-packets-in-flight (number)
1951 The maximum number of unreplied packets in flight. If round trip
1952 time is significant, you should increase this and size-
1953 read/size-write. Default is 16.
1954
1955 sftp:protocol-version (number)
1956 The protocol number to negotiate. Default is 6. The actual pro‐
1957 tocol version used depends on the server.
1958
1959 sftp:server-program (string)
1960 The server program implementing SFTP protocol. If it does not
1961 contain a slash `/', it is considered a ssh2 subsystem and -s
1962 option is used when starting connect-program. Default is
1963 `sftp'. You can use rsh as transport level protocol like this:
1964 set sftp:connect-program rsh
1965 set sftp:server-program /usr/libexec/openssh/sftp-server
1966 Similarly you can run SFTP over SSH1.
1967
1968 sftp:size-read (number)
1969 Block size for reading. Default is 0x8000.
1970
1971 sftp:size-write (number)
1972 Block size for writing. Default is 0x8000.
1973
1974 ssl:ca-file (path to file)
1975 use specified file as Certificate Authority certificate.
1976
1977 ssl:ca-path (path to directory)
1978 use specified directory as Certificate Authority certificate
1979 repository (OpenSSL only).
1980
1981 ssl:check-hostname (boolean)
1982 when true, lftp checks if the host name used to connect to the
1983 server corresponds to the host name in its certificate.
1984
1985 ssl:crl-file (path to file)
1986 use specified file as Certificate Revocation List certificate.
1987
1988 ssl:crl-path (path to directory)
1989 use specified directory as Certificate Revocation List certifi‐
1990 cate repository (OpenSSL only).
1991
1992 ssl:key-file (path to file)
1993 use specified file as your private key. This setting is only
1994 used for ftps and https protocols. For sftp and fish protocols
1995 use sftp:connect-program and fish:connect-program respectively
1996 (add `-i' option to ssh).
1997
1998 ssl:cert-file (path to file)
1999 use specified file as your certificate.
2000
2001 ssl:use-sni (boolean)
2002 when true, use Server Name Indication (SNI) TLS extension.
2003
2004 ssl:verify-certificate (boolean)
2005 if set to yes, then verify server's certificate to be signed by
2006 a known Certificate Authority and not be on Certificate Revoca‐
2007 tion List. You can specify either host name or certificate fin‐
2008 gerprint in the closure.
2009
2010 ssl:priority (string)
2011 free form priority string for GnuTLS. If built with OpenSSL the
2012 understood values are + or - followed by SSL3.0, TLS1.0, TLS1.1
2013 or TLS1.2, separated by :. Example:
2014 set ssl:priority "NORMAL:-SSL3.0:-TLS1.0:-TLS1.1:+TLS1.2"
2015
2016 torrent:ip (ipv4 address)
2017 IP address to send to the tracker. Specify it if you are using
2018 an HTTP proxy.
2019
2020 torrent:ipv6 (ipv6 address)
2021 IPv6 address to send to the tracker. By default, first found
2022 global unicast address is used.
2023
2024 torrent:max-peers (number)
2025 maximum number of peers for a torrent. Least used peers are
2026 removed to maintain this limit.
2027
2028 torrent:port-range (from-to)
2029 port range to accept connections on. A single port is selected
2030 when a torrent starts.
2031
2032 torrent:retracker (URL)
2033 explicit retracker URL, e.g. `http://retracker.local/announce'.
2034
2035 torrent:save-metadata (boolean)
2036 when true, lftp saves metadata of each torrent it works with to
2037 ~/.local/share/lftp/torrent/md or ~/.lftp/torrent/md directory
2038 and loads it from there if necessary.
2039
2040 torrent:seed-max-time (time interval)
2041 maximum seed time. After this period of time a complete torrent
2042 shuts down independently of ratio. It can be set to infinity if
2043 needed.
2044
2045 torrent:seed-min-peers (number)
2046 minimum number of peers when the torrent is complete. If there
2047 are less, new peers are actively searched for.
2048
2049 torrent:stop-min-ppr (real number)
2050 minimum per-piece-ratio to stop seeding. Use it to avoid a situ‐
2051 ation when a popular piece causes quick raise of the total
2052 ratio.
2053
2054 torrent:stop-on-ratio (real number)
2055 torrent stops when it's complete and ratio reached this number.
2056
2057 torrent:timeout (time interval)
2058 maximum time without any progress. When it's reached, the tor‐
2059 rent shuts down.
2060
2061 torrent:use-dht (boolean)
2062 when true, DHT is used.
2063
2064 xfer:auto-rename(boolean)
2065 suggested filenames provided by the server are used if user
2066 explicitly sets this option to `on'. As this could be security
2067 risk, default is off.
2068
2069 xfer:backup-suffix (string)
2070 a time format string (see strftime(3)) for backup file name when
2071 replacing an existing file.
2072
2073 xfer:clobber (boolean)
2074 if this setting is off, get commands will not overwrite existing
2075 files and generate an error instead.
2076
2077 xfer:destination-directory (path or URL to directory)
2078 This setting is used as default -O option for get and mget com‐
2079 mands. Default is empty, which means current directory (no -O
2080 option).
2081
2082 xfer:disk-full-fatal (boolean)
2083 when true, lftp aborts a transfer if it cannot write target file
2084 because of full disk or quota; when false, lftp waits for disk
2085 space to be freed.
2086
2087 xfer:eta-period (seconds)
2088 the period over which weighted average rate is calculated to
2089 produce ETA.
2090
2091 xfer:eta-terse (boolean)
2092 show terse ETA (only high order parts). Default is true.
2093
2094 xfer:keep-backup (boolean)
2095 when true, the backup file created before replacing an existing
2096 file is not removed after successful transfer.
2097
2098 xfer:make-backup (boolean)
2099 when true, lftp renames pre-existing file adding xfer:backup-
2100 suffix instead of overwriting it.
2101
2102 xfer:max-redirections (number)
2103 maximum number of redirections. This can be useful for download‐
2104 ing over HTTP. 0 prohibits redirections.
2105
2106 xfer:parallel (number)
2107 the default number of parallel transfers in a single
2108 get/put/mget/mput command.
2109
2110 xfer:rate-period (seconds)
2111 the period over which weighted average rate is calculated to be
2112 shown.
2113
2114 xfer:temp-file-name (string)
2115 temporary file name pattern, first asterisk is replaced by the
2116 original file name.
2117
2118 xfer:timeout (time interval)
2119 maximum time without any transfer progress. It can be used to
2120 limit maximum time to retry a transfer from a server not sup‐
2121 porting transfer restart.
2122
2123 xfer:use-temp-file (boolean)
2124 when true, a file will be transferred to a temporary file in the
2125 same directory and then renamed.
2126
2127 xfer:verify (boolean)
2128 when true, verify-command is launched after successful transfer
2129 to validate file integrity. Zero exit code of that command
2130 should indicate correctness of the file.
2131
2132 xfer:verify-command (string)
2133 the command to validate file integrity. The only argument is the
2134 path to the file.
2135
2136
2137 The name of a variable can be abbreviated unless it becomes ambiguous.
2138 The prefix before `:' can be omitted too. You can set one variable sev‐
2139 eral times for different closures, and thus you can get a particular
2140 settings for particular state. The closure is to be specified after
2141 variable name separated with slash `/'.
2142
2143 The closure for `dns:', `net:', `ftp:', `http:', `hftp:' domain vari‐
2144 ables is currently just the host name as you specify it in the `open'
2145 command (with some exceptions where closure is meaningless, e.g.
2146 dns:cache-size). For some `cmd:' domain variables the closure is cur‐
2147 rent URL without path. For `log:' domain variables the closure is
2148 either `debug' or `xfer'. For other variables it is not currently
2149 used. See examples in the sample lftp.conf.
2150
2151 Certain commands and settings take a time interval parameter. It has
2152 the format Nx[Nx...], where N is time amount (floating point) and x is
2153 time unit: d - days, h - hours, m - minutes, s - seconds. Default unit
2154 is second. E.g. 5h30m or 5.5h. Also the interval can be `infinity',
2155 `inf', `never', `forever' - it means infinite interval. E.g. `sleep
2156 forever' or `set dns:cache-expire never'.
2157
2158 Boolean settings can be one of (true, on, yes, 1, +) for a True value
2159 or one of (false, off, no, 0, -) for a False value.
2160
2161 Tri-boolean settings have either a boolean value or `auto'.
2162
2163 Integer settings can have a suffix: k - kibi, m - mebi, g - gigi, etc.
2164 They can also have a prefix: 0 - octal, 0x - hexadecimal.
2165
2166
2167 FTP asynchronous mode (pipelining)
2168 Lftp can speed up FTP operations by sending several commands at once
2169 and then checking all the responses. See ftp:sync-mode variable. Some‐
2170 times this does not work, thus synchronous mode is the default. You can
2171 try to turn synchronous mode off and see if it works for you. It is
2172 known that some network software dealing with address translation works
2173 incorrectly in the case of several FTP commands in one network packet.
2174
2175 RFC959 says: ``The user-process sending another command before the com‐
2176 pletion reply would be in violation of protocol; but server-FTP pro‐
2177 cesses should queue any commands that arrive while a preceding command
2178 is in progress''. Also, RFC1123 says: ``Implementors MUST NOT assume
2179 any correspondence between READ boundaries on the control connection
2180 and the Telnet EOL sequences (CR LF).'' and ``a single READ from the
2181 control connection may include more than one FTP command''.
2182
2183 So it must be safe to send several commands at once, which speeds up
2184 operation a lot and seems to work with all Unix and VMS based ftp
2185 servers. Unfortunately, windows based servers often cannot handle sev‐
2186 eral commands in one packet, and so cannot some broken routers.
2187
2188
2190 -d Switch on debugging mode.
2191
2192 -e commands
2193 Execute given commands and don't exit.
2194
2195 -p port
2196 Use the given port to connect.
2197
2198 -u user[,pass]
2199 Use the given username and password to connect. Remember to
2200 quote the password properly in the shell. Also note that it is
2201 not secure to specify the password on command line, use ~/.netrc
2202 file or LFTP_PASSWORD environment variable together with
2203 --env-password option. Alternatively you can use ssh-based pro‐
2204 tocols with authorized keys, so you don't have to enter a pass‐
2205 word.
2206
2207 --norc Don't execute rc files from the home directory.
2208
2209 --rcfile file
2210 Execute commands from the file. May be specified multiple times.
2211
2212 -f script_file
2213 Execute commands in the file and exit. This option must be used
2214 alone without other arguments (except --norc).
2215
2216 -c commands
2217 Execute the given commands and exit. Commands can be separated
2218 with a semicolon, `&&' or `||'. Remember to quote the commands
2219 argument properly in the shell. This option must be used alone
2220 without other arguments (except --norc).
2221
2222 Other open options may also be given on the lftp command line.
2223
2224
2226 The following environment variables are processed by lftp:
2227
2228 EDITOR Used as local editor for the edit command.
2229
2230 HOME Used for (local) tilde (`~') expansion.
2231
2232 SHELL Used by the ! command to determine the shell to run.
2233
2234 PAGER This should be the name of the pager to use. It's used by the
2235 more and zmore commands.
2236
2237 http_proxy, https_proxy
2238 Used to set initial http:proxy, hftp:proxy and https:proxy vari‐
2239 ables.
2240
2241 ftp_proxy
2242 Used to set initial ftp:proxy or hftp:proxy variables, depending
2243 on URL protocol used in this environment variable.
2244
2245 no_proxy
2246 Used to set initial net:no-proxy variable.
2247
2248 LFTP_MODULE_PATH
2249 Used to set initial module:path variable.
2250
2251 LFTP_HOME
2252 Used to locate the directory that stores user-specific configu‐
2253 ration files. If unset, ~/.lftp will be used. Please note that
2254 if this directory does not exist, then XDG directories will be
2255 used.
2256
2257 LFTP_PASSWORD
2258 Used for --env-password open option.
2259
2260 LS_COLORS
2261 used to set initial color:dir-colors variable.
2262
2263 XDG_CONFIG_HOME, XDG_DATA_HOME, XDG_CACHE_HOME
2264 Used to locate the directories for user-specific files when
2265 ~/.lftp (or $LFTP_HOME directory) does not exist. Defaults are
2266 ~/.config, ~/.local/share and ~/.cache respectively. The suffix
2267 /lftp is appended to make the full path to the directories.
2268
2269
2271 /etc/lftp.conf
2272 system-wide startup file. Actual location depends on
2273 --sysconfdir configure option. It is /etc when prefix is /usr,
2274 /usr/local/etc by default.
2275
2276
2277 ~/.config/lftp/rc or ~/.lftp/rc, ~/.lftprc
2278 These files are executed on lftp startup after /etc/lftp.conf.
2279
2280 ~/.local/share/lftp/log or ~/.lftp/log
2281 The file things are logged to when lftp moves into the back‐
2282 ground in nohup mode.
2283
2284 ~/.local/share/lftp/transfer_log or ~/.lftp/transfer_log
2285 The file transfers are logged to when log:enabled/xfer setting
2286 is set to `yes'. The location can be changed by log:file/xfer
2287 setting.
2288
2289 ~/.local/share/lftp/bookmarks or ~/.lftp/bookmarks
2290 The file is used to store lftp's bookmarks. See the bookmark
2291 command.
2292
2293 ~/.local/share/lftp/cwd_history or ~/.lftp/cwd_history
2294 The file is used to store last working directories for each site
2295 visited.
2296
2297 ~/.local/share/lftp/bg/ or ~/.lftp/bg/
2298 The directory is used to store named sockets for backgrounded
2299 lftp processes.
2300
2301 ~/.cache/lftp/DHT/ or ~/.lftp/DHT/"
2302 The directory is used to store DHT id and nodes cache for IPv4
2303 and IPv6. File name suffix is the host name.
2304
2305 ~/.cache/lftp/edit/ or ~/.lftp/edit/"
2306 The directory is used to store temporary files for edit command.
2307
2308 ~/.local/share/lftp/torrent/md/ or ~/.lftp/torrent/md/"
2309 The directory is used to store torrent metadata. It is espe‐
2310 cially useful for magnet links, cached metadata can be loaded
2311 from the directory. It can also serve as torrent history, file
2312 names are the info_hash of torrents.
2313
2314 ~/.netrc
2315 The file is consulted to get default login and password to a
2316 server when it is specified without a protocol to the `open'
2317 command. Passwords are also searched here if an URL with user
2318 name but with no password is used.
2319
2320
2322 ftpd(8), ftp(1)
2323 RFC854 (telnet), RFC959 (ftp), RFC1123, RFC1945 (http/1.0), RFC2052
2324 (SRV RR), RFC2228 (ftp security extensions), RFC2389 (ftp FEAT),
2325 RFC2428 (ftp/ipv6), RFC2518 (WebDAV), RFC2616 (http/1.1), RFC2617
2326 (http/1.1 authentication), RFC2640 (ftp i18n), RFC3659 (ftp exten‐
2327 sions), RFC4217 (ftp over ssl), BEP0003 (BitTorrent Protocol), BEP0005
2328 (DHT Protocol), BEP0006 (Fast Extension), BEP0007 (IPv6 Tracker Exten‐
2329 sion), BEP0009 (Extension for Peers to Send Metadata Files), BEP0010
2330 (Extension Protocol), BEP0012 (Multitracker Metadata Extension),
2331 BEP0023 (Tracker Returns Compact Peer Lists), BEP0032 (DHT Extensions
2332 for IPv6).
2333 https://tools.ietf.org/html/draft-preston-ftpext-deflate-04 (ftp
2334 deflate transmission mode),
2335 https://tools.ietf.org/html/draft-dd-pret-00 (PRET command),
2336 https://tools.ietf.org/html/draft-ietf-secsh-filexfer-13 (sftp).
2337 http://wiki.theory.org/BitTorrentSpecification
2338 http://www.bittornado.com/docs/multitracker-spec.txt
2339 http://www.rasterbar.com/products/libtorrent/dht_sec.html (DHT security
2340 extension)
2341 http://xbtt.sourceforge.net/udp_tracker_protocol.html (UDP tracker)
2342
2343
2345 Alexander V. Lukyanov
2346 lav@yars.free.net
2347
2348
2350 This manual page was originally written by Christoph Lameter <clame‐
2351 ter@debian.org>, for the Debian GNU/Linux system. The page was improved
2352 and updated later by Nicolas Lichtmaier <nick@Feedback.com.ar>, James
2353 Troup <J.J.Troup@comp.brad.ac.uk> and Alexander V. Lukyanov
2354 <lav@yars.free.net>.
2355
2356
2357
2358 10 Aug 2017 lftp(1)