1lftp(1)                     General Commands Manual                    lftp(1)
2
3
4

NAME

6       lftp - Sophisticated file transfer program
7

SYNTAX

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

VERSION

17       This man page documents lftp version 4.8.1.
18
19

DESCRIPTION

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

OPTIONS

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

ENVIRONMENT VARIABLES

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

FILES

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

SEE ALSO

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

AUTHOR

2345       Alexander V. Lukyanov
2346       lav@yars.free.net
2347
2348

ACKNOWLEDGMENTS

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)
Impressum