Giter Club home page Giter Club logo

dirsync's Introduction

dirsync

© 2014-2020 Thomas Khyn © 2003-2015 Anand B Pillai

Advanced directory tree synchronisation tool

based on Python robocopier by Anand B Pillai

If you like dirsync and find it useful, you may want to thank me and encourage future development by sending a few mBTC / mBCH / mBSV at this address: 1EwENyR8RV6tMc1hsLTkPURtn5wJgaBfG9.

Usage

From the command line:

dirsync <sourcedir> <targetdir> [options]

From python:

from dirsync import sync
sync(sourcedir, targetdir, action, **options)

Main Options

Chosing one option among the following ones is mandatory

--diff, -d Only report difference between sourcedir and targetdir --sync, -s Synchronize content between sourcedir and targetdir --update, -u Update existing content between sourcedir and targetdir

If you use one of the above options (e.g. sync) most of the time, you may consider defining the action option in a Configuration file parsed by dirsync.

Additional Options

--verbose, -v Provide verbose output --purge, -p Purge files when synchronizing (does not purge by default) --force, -f Force copying of files, by trying to change file permissions --twoway, -2 Update files in source directory from target directory (only updates target from source by default) --create, -c Create target directory if it does not exist (By default, target directory should exist.) --ctime Also takes into account the source file's creation time (Windows) or the source file's last metadata change (Unix) --content Takes into account ONLY content of files. Synchronize ONLY different files. At two-way synchronization source files content have priority if destination and source are existed --ignore, -x patterns Regex patterns to ignore --only, -o patterns Regex patterns to include (exclude every other) --exclude, -e patterns Regex patterns to exclude --include, -i patterns Regex patterns to include (with precedence over excludes)

Configuration file

Note

Configuration files are only used when using the command line, and ignored when dirsync is called from within Python.

If you want to use predefined options all the time, or if you need specific options when 'dirsyncing' a specific source directory, dirsync looks for two configuration files, by order or priority (the last takes precedence):

~/.dirsync
source/directory/.dirsync

Note

A ~/.dirsync configuration file is automatically created the first time dirsync is ran from the command line. It enables sync mode by default.

Warning

Any source/directory/.dirsync file is automatically excluded from the files to compare. You have to explicitly include using the --include option it if you want it to be covered by the comparison.

The command line options always override the values defined in the configuration files.

The configuration files must have a defaults section, and the options are as defined above. The only exception is for the option action, which can take 3 values diff, sync or update.

Example config file:

[defaults]
action = sync
create = True

Custom logger

From python, you may not want to have the output sent to stdout. To do so, you can simply pass your custom logger via the logger keyword argument of the sync function:

sync(sourcedir, targetdir, action, logger=my_logger, **options)

dirsync's People

Contributors

tkhyn avatar sunhaitao avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.