lunas is a syncing cli tool that can handle more than two directories locally and remotely.
options
[-p, --path]
path of the local directory to be synced. this option can be used many times to sync multiple directories
[-r, --remote-path]
path of the remote sftp directory to be synce. this option can be used many times to sync multiple directories
[N=NUMBER, port=NUMBER]
the port number. if this option was used, it must come after the relevant remote path. It defaults to 22, if the option is not used
example: -rdest user@ip:/path/to/dir port=NUMBER
[pw=PASSWORD, password=PASSWORD]
password of the remote directory. if this option was used, it must come after the relevant remote path.
publickey authetication is used by default, if it wasn't successful you should be prompted for the password
example: -rdest user@ip:/path/to/dir pw=PASSWORD N=NUMBER
[-mkdir, --make-directory]
make any input directory if it doesn't exists, locally and remotely
[-x, --exclude]
exclude a path from getting synced. this option can be used many times to *exclude* multiple directories/files
example: input dir: /dir1/dir2/ -x /dir1/dir2/dir3/dir
example: input dir: /dir1/dir2/ -x dir2/dir3/dir
[-s, -src, --source]
path of the source local directory. this option can be used many times to sync multiple directories
[-d, -dest, --destination]
path of the destination local directory. this option can be used many times to sync multiple directories
[-rs, -rsrc, --remote-source]
path of the remote source sftp directory. this option can be used many times to sync multiple directories
[-rd, -rdest, --remote-destination]
path of the remote destination sftp directory. this option can be used many times to sync multiple directories
[-dr, --dry-run]
outputs what will be synced without actually syncing them
[-q, --quiet]
Disable print statements and only print errors
[-rm, --remove]
logs deleted files/directories to not sync them or/and to delete them from the other input directories.
this is saved inside .lsremove file in the same or parent directory
example: -rm /path/to/file
example: -rm /path/to/dir
[-rrm, --remote-remove]
same as [-rm, --remove] but with remote directories
example: -rrm user@ip:/path/to/dir port=NUMBER
[-cr, --confirm-remove] OR OR
YES/Y confirms the sync removal of files/dirs inside .lsremove files
NO/N ignores the content inside .lsremove files when syncing
SYNC/S syncs back the content of .lsremove files that was found in input directories
-> The Default is NO/N if .lsremove files were found and this option wasn't used
[-esr, --empty-sync-remove]
removes every .lsremove file from input directories
[-ec, --error-color]
don't color error messages red
[-B, --no-broken-link]
don't sync broken symlinks
[-L, --dereference]
follow symlinks. sync the target the symlink is pointing to instead of the symlink itself
[-F, --fsync]
synchronize the copied file with the filesystem
[-C, --compression]
enable compression in remote transfer, zlib is used
[-CL, --compression-level]
chose the compression level, 1-9, 9 being the most efficient but slower
[-R, --resume]
resume interrupted file transfer
[-c, --config] OR
sync a preconfigured preset from the config file. Read the man page the CONFIG FILE section
To create a demo config run 'lunas -c DEMO_CONFIG'
[-a, --attributes]
sync file attributes. own, ownership, is for uid and gid. utimes is for atime and mtime. a is for all
[-u, --update]
check mtime of files and re-sync the file if mtime wasn't the same. this option enables -a mtime
the destination file, if exists, gets removed then re-synced again. it replaces old mtime files with newer mtime ones
[-rb, --rollback] can be used to replace newer files with older ones
[-P, --progress]
enable progress bar for copied files
[-v, --verbose]
print the source of which files/dirs were copied from not just the destination
[--author]
print the program's author
[--license]
print the program's license
[-V, --version]
print the program's version
[-h, --help]
print this help statement
This is free and open source software.
Website: codeberg.org/cyber-luna/lunas
Support:
Developer: cyber-luna
License: GNU General Public License v3.0
lunas is written in C++. Learn C++ with our recommended free books and free tutorials.
Related Software
| Alternatives to cp | |
|---|---|
| xcp | Extended cp written in Rust |
| fcp | Significantly faster alternative to cp |
| gcp | Goffi's cp, a fancy file copier |
| pycp | cp and mv with a progressbar |
| rsync | Fast incremental file transfer |
| Fast Unix Commands | Provides alternatives for rm and cp |
| renameutils | Make copying files faster and less cumbersome |
| cpy-cli | Accepts globs and creates non-existent destination directories. |
| cpz | Zippy alternative to cp |
| lunas | Syncing tool handling more than two directories locally and remotely |
| BCMR | Better Copy Move Remove |
| cpx | Modern replacement for the traditional cp command |
| advcpmv | Patch for cp |
| RCP Tools | Manage large filesets |
Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more. Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form. |

