cutout from here: https://lftp.yar.ru/lftp-man.html
Table of content:
mirror [OPTS] [source [target]]
Mirror specified source directory to the target directory.
By default the source is remote and the target is a local directory. When using -R, the source directory is local and the target is remote. If the target directory is omitted, base name of the source directory is used. If both directories are omitted, current local and remote directories are used.
The source and/or the target may be URLs pointing to directories.
If the target directory ends with a slash (except the root directory) then base name of the source directory is appended.
-c, --continue continue a mirror job if possible -e, --delete delete files not present at the source --delete-excluded delete files excluded at the target --delete-first delete old files before transferring new ones --depth-first descend into subdirectories before transferring files --scan-all-first scan all directories recursively before transfer ring files -s, --allow-suid set suid/sgid bits according to the source --allow-chown try to set owner and group on files --ascii use ascii mode transfers (implies --ignore-size) --ignore-time ignore time when deciding whether to download --ignore-size ignore size when deciding whether to download --only-missing download only missing files --only-existing download only files already existing at target -n, --only-newer download only newer files (-c won't work) --upload-older upload even files older than the target ones --transfer-all transfer all files, even seemingly the same at the target site --no-empty-dirs don't create empty directories (implies --depth-first) -r, --no-recursion don't go to subdirectories --recursion=MODE go to subdirectories on a condition --no-symlinks don't create symbolic links -p, --no-perms don't set file permissions --no-umask don't apply umask to file modes -R, --reverse reverse mirror (put files) -L, --dereference download symbolic links as files --overwrite overwrite plain files without removing them first --no-overwrite remove and re-create plain files instead of over writing -N, --newer-than=SPEC download only files newer than specified time --older-than=SPEC download only files older than specified time --size-range=RANGE download only files with size in specified range -P, --parallel[=N] download N files in parallel --use-pget[-n=N] use pget to transfer every single file --on-change=CMD execute the command if anything has been changed --loop repeat mirror until no changes found -i RX, --include=RX include matching files -x RX, --exclude=RX exclude matching files -I GP, --include-glob=GP include matching files -X GP, --exclude-glob=GP exclude matching files --include-rx-from=FILE --exclude-rx-from=FILE --include-glob-from=FILE --exclude-glob-from=FILE load include/exclude patterns from the file, one per line -f FILE, --file=FILE mirror a single file or globbed group (e.g. /path/to/*.txt) -F DIR, --directory=DIR mirror a single directory or globbed group (e.g. /path/to/dir*) -O DIR, --target-directory=DIR target base path or URL -v, --verbose[=level] verbose operation --log=FILE write lftp commands being executed to FILE --script=FILE write lftp commands to FILE, but don't execute them --just-print, --dry-run same as --script=- --max-errors=N stop after this number of errors --skip-noaccess don't try to transfer files with no read access. --use-cache use cached directory listings --Remove-source-files remove source files after transfer (use with cau tion) --Remove-source-dirs remove source files and directories after transfer (use with caution). Top level directory is not removed if it's name ends with a slash. --Move same as --Remove-source-dirs -a same as --allow-chown --allow-suid --no-umask
RX is an extended regular expression, just like in egrep(1).
GP is a glob pattern, e.g. `*.zip'.
Include and exclude options can be specified multiple times. It means that a file or direc tory would be mirrored if it matches an include and does not match to excludes after the include, or does not match anything and the first check is exclude. Directories are matched with a slash appended.
Note that symbolic links are not created when uploading to remote server, because FTP proto col cannot do it. To upload files the links refer to, use `mirror -RL' command (treat sym bolic links as files).
For options --newer-than and --older-than you can either specify a file or time specification like that used by at(1) command, e.g. `now-7days' or `week ago'. If you specify a file, then modification time of that file will be used.
Verbosity level can be selected using --verbose=level option or by several -v options, e.g. -vvv. Levels are: 0 - no output (default) 1 - print actions 2 - +print not deleted file names (when -e is not specified) 3 - +print directory names which are mirrored
--only-newer turns off file size comparison and uploads/downloads only newer files even if size is different. By default older files are transferred and replace newer ones.
--upload-older allows replacing newer remote files with older ones (when the target side is remote). Some remote back-ends cannot preserve timestamps so the default is to keep newer files.
Recursion mode can be one of `always', `never', `missing', `newer'. With the option `newer' mirror compares timestamps of directories and enters a directory only if it is older or missing on the target side. Be aware that when a file changes the directory timestamp may stay the same, so mirror won't process that directory.
The options --file and --directory may be used multiple times and even mixed provided that base directories of the paths are the same.
You can mirror between two servers if you specify URLs instead of directories. FXP is automatically used for transfers between FTP servers, if possible.
Some FTP servers hide dot-files by default (e.g. .htaccess), and show them only when LIST command is used with -a option. In such case try to use `set ftp:list-options -a'.
The recursion modes `newer' and `missing' conflict with --scan-all-first, --depth-first, --no-empty-dirs and setting mirror:no-empty-dirs=true.
mput [-c] [-d] [-a] [-E] [-e] [-P N] [-O base] files
Upload files with wildcard expansion. By default it uses the base name of local name as remote one. This can be changed by `-d' option.
-c continue, reput -d create directories the same as in file names and put the files into them instead of current directory -E delete source files after successful transfer (dangerous) -e delete target file before the transfer -a use ascii mode (binary is the default) -P N upload N files in parallel -O <base> specifies base directory or URL where files should be placed
put [-E] [-a] [-c] [-e] [-P N] [-O base] lfile [-o rfile]
Upload lfile with remote name rfile. If -o omitted, the base name of lfile is used as remote name. Does not expand wildcards, use mput for that.
-o <rfile> specifies remote file name (default - basename of lfile) -c continue, reput. It requires permission to overwrite remote files -E delete source files after successful transfer (dangerous) -e delete target file before the transfer -a use ascii mode (binary is the default) -P N upload N files in parallel