Essential Utilities to Boost Producitivity

lunas – syncing cli tool

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
xcpExtended cp written in Rust
fcpSignificantly faster alternative to cp
gcpGoffi's cp, a fancy file copier
pycpcp and mv with a progressbar
rsyncFast incremental file transfer
Fast Unix CommandsProvides alternatives for rm and cp
renameutilsMake copying files faster and less cumbersome
cpy-cliAccepts globs and creates non-existent destination directories.
cpzZippy alternative to cp
lunasSyncing tool handling more than two directories locally and remotely
BCMRBetter Copy Move Remove
cpxModern replacement for the traditional cp command
advcpmvPatch for cp
RCP ToolsManage large filesets

Best Free and Open Source Software 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.
Subscribe
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments