lsftp is an interactive SFTP shell that can connect to one or more hosts at the same time.
After selecting hosts, you can browse files, transfer data, and manage directories from a single prompt.
$ lsftp --help
NAME:
lsftp - TUI list select and parallel sftp client command.
USAGE:
lsftp [options]
OPTIONS:
--file value, -F value config file path (default: "/Users/blacknon/.lssh.conf")
--help, -h print this help
--version, -v print the version
COPYRIGHT:
blacknon(blacknon@orebibou.com)
VERSION:
lssh-suite 0.8.0 (stable/transfer)
USAGE:
# start lsftp shell
lsftp
Start lsftp, select one or more hosts from the TUI list, and the lsftp>> prompt will open.
When multiple hosts are selected, many operations run in parallel against the selected hosts.
# start lsftp shell
lsftp
# specify the config file
lsftp -F ~/.lssh.conflsftp supports both remote and local file operations from the same shell.
- Download files with
get - Upload files with
put - Sync files with
sync - Copy files between remote hosts with
copy - Browse files with
ls,tree, anddf - Manage files with
mkdir,rm,rename,chmod,chown, and related commands
Command examples.
get and put can transfer files in parallel with worker-based processing. Use -P to increase the number of workers when downloading or uploading many files.
# download from remote to local
get /var/log/app.log ./
# download with parallel workers
get -P 4 /data/*.gz ./backup/
# upload from local to remote
put ./dist/app /opt/app/
# upload with parallel workers
put -P 4 ./dist/*.tar.gz /opt/archive/
# sync local -> remote
sync --delete local:./site remote:/var/www/site
# sync remote -> local
sync remote:/var/lib/app local:./backup
# copy between remote hosts
copy @web01:/var/log/app.log @web02:/tmp/Main commands available in the current implementation.
cat print remote file contents
cd change remote directory
chgrp change remote file group
chmod change remote file permissions
chown change remote file owner
copy copy files between remote hosts
df show disk usage
get download from remote to local
lcat print local file contents
lcd change local directory
lls list local directory
lmkdir create local directory
ln create link
lpwd print local working directory
ls list remote directory
lumask set local umask
mkdir create remote directory
put upload from local to remote
sync one-way sync between local and remote paths
pwd print remote working directory
rename rename remote file
rm remove remote file
rmdir remove remote directory
symlink create symbolic link
tree show remote tree
ltree show local tree
help, ? show help
bye, exit, quit
Remote host notation for copy uses the @host:/path format.
For sync, use the lssync style (local|remote):path prefixes. You can target a specific remote host inside lsftp with remote:@host:/path.
The default config file path is ~/.lssh.conf.
