unison-2.27.57(1) a file-synchronization tool for Unix and Windows


unison-2.27.57 [options]
unison-2.27.57 root1 root2 [options]
unison-2.27.57 profilename [options]
unison-2.27.57-gtk [options]


This manual page briefly documents Unison, and was written for the Debian GNU/Linux distribution because the original program does not have a manual page. For a full description, please refer to the inbuilt documentation or the manuals in /usr/share/doc/unison2.27.57/. The unison-2.27.57-gtk binary has similar command-line options, but allows the user to select and create profiles and configure options from within the program.

Unison is a file-synchronization tool for Unix and Windows. It allows two replicas of a collection of files and directories to be stored on different hosts (or different disks on the same host), modified separately, and then brought up to date by propagating the changes in each replica to the other.

Unison offers several advantages over various synchronization methods such as CVS, Coda, rsync, Intellisync, etc. Unison can run on and synchronize between Windows and many UNIX platforms. Unison requires no root privileges, system access or kernel changes to function. Unison can synchronize changes to files and directories in both directions, on the same machine, or across a network using ssh or a direct socket connection.

Transfers are optimised using a version of the rsync protocol, making it ideal for slower links. Unison has a clear and precise specification, and is resilient to failure due to its careful handling of the replicas and its private structures.

The two roots can be specified using an URI or a path. The URI must follow the convention: protocol://[[email protected]][host][:port][/path]. The protocol part can be file, socket, ssh or rsh.


All Unison options are long, starting with one dash (`-') only. A summary of options is included here. For a complete description, see the inbuilt documentation or the manuals in /usr/share/doc/unison2.27.57/.
-addprefsto xxx
file to add new prefs to
add version number to name of unison executable on server
automatically accept default actions
-backup xxx
add a pattern to the backup list
-backupcurrent xxx
add a pattern to the backupcurrent list
-backupcurrentnot xxx
add a pattern to the backupcurrentnot list
-backupdir xxx
Directory for storing centralized backups
-backuplocation xxx
where backups are stored ('local' or 'central')
-backupnot xxx
add a pattern to the backupnot list
-backupprefix xxx
prefix for the names of backup files
keep backup copies of all files (see also 'backup')
-backupsuffix xxx
a suffix to be added to names of backup files
batch mode: ask no questions at all
request confirmation for whole-replica deletes
ask for confirmation before commiting results of a merge
Suppress the 'contacting server' message during startup
-debug xxx
debug module xxx ('all' -> everything, 'verbose' -> more)
-doc xxx
show documentation ('-doc topics' lists topics)
do not try to change terminal settings in text UI
-fastcheck xxx
do fast update detection (`true', `false', or `default')
-follow xxx
add a pattern to the follow list
-force xxx
force changes from this replica to the other
-forcepartial xxx
add a pattern to the forcepartial list
synchronize group
-height n
height (in lines) of main window in graphical interface
-host xxx
bind the socket to this host name in server socket mode
-ignore xxx
add a pattern to the ignore list
-ignorecase xxx
ignore upper/lowercase in filenames (`true', `false', or `default')
ignore locks left over from previous run (dangerous!)
-ignorenot xxx
add a pattern to the ignorenot list
-immutable xxx
add a pattern to the immutable list
-immutablenot xxx
add a pattern to the immutablenot list
-key xxx
define a keyboard shortcut for this profile (in some UIs)
kill server when done (even when using sockets)
-label xxx
provide a descriptive string label for this profile
record actions in file specified by logfile preference
-logfile xxx
Log file name
-maxbackups n
number of backed up versions of a file
-maxthreads n
maximum number of simultaneous file transfers
-merge xxx
add a pattern to the merge list
-mountpoint xxx
abort if this path does not exist
don't map uid/gid values by user/group names
synchronize owner
-path xxx
path to synchronize
-perms n
part of the permissions which is synchronized
-prefer xxx
choose this replica's version for conflicting changes
-preferpartial xxx
add a pattern to the preferpartial list
Use creation times for detecting updates
-repeat xxx
synchronize repeatedly (text interface only)
-retry n
re-try failed synchronizations N times (text interface only)
-root xxx
root of a replica
-rootalias xxx
Register alias for canonical root names
-rsrc xxx
synchronize resource forks and HFS meta-data (`true', `false', or `default')
activate the rsync transfer mode
run internal tests and exit
-servercmd xxx
name of unison executable on remote server
show name of archive and 'true names' (for rootalias) of roots
print nothing (except error messages)
-socket xxx
act as a server on a socket
list changed files by size, not name
-sortfirst xxx
add a pattern to the sortfirst list
-sortlast xxx
add a pattern to the sortlast list
list new before changed files
-sshargs xxx
other arguments (if any) for remote shell command
-sshcmd xxx
path to the ssh executable
suppress status messages
exit immediately after the connection to the server
synchronize modification times
-ui xxx
select user interface ('text' or 'graphic'); command-line only
print version and exit
optimize transfers using local copies, if possible

Some preferences are just boolean flags. Others take numeric or string arguments, indicated in the preferences list by n or xxx. Most of the string preferences can be given several times; the arguments are accumulated into a list internally.


Options are automatically extracted from `unison -help'. The rest of this manual page was written by Robert McQueen <[email protected]>, for the Debian GNU/Linux system (but may be used by others).