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