Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

synctree(1) [minix man page]

SYNCTREE(1)						      General Commands Manual						       SYNCTREE(1)

NAME
synctree - synchronize directory trees. SYNOPSIS
synctree [-iuf] [[user1@]machine1:]dir1 [[user2@]machine2:]dir2 DESCRIPTION
Synctree synchronizes the directory tree rooted at dir2 with dir1. It walks recursively through both trees, and deletes and adds files in dir2 to make it equal to dir1. Mode, owner and group are set for each file unless the -u flag is given. In its normal mode of operation, synctree will ask if it may delete or add directories assuming that you don't want to. Non-directories are simply deleted or added, but synctree will ask if it needs to update a normal file with a default answer of 'y'. Simply typing return will choose the default answer, typing end-of-file is like typing return to this question and all other questions. You can specify a hostname and user-id to be used to access dir1 or dir2. Synctree will use rsh(1) to run a copy of itself on the remote machine. The call interface mimics that of rcp(1), but you can use more than one user@machine prefix if you want to make things really interesting. Hard links are enforced, an update is done by first deleting the old file so that links to unknown files are broken. Links to files within dir2 will be restored. If either directory contains the file .backup, then this file will be used as an alternate inode table. This allows one to make a backup copy of a file tree full of special files and differing user-ids on a remote machine under an unpriviledged user-id. OPTIONS
-i Ask for permission (with default answer 'n') to delete or add any file or directory. -u Only install newer files, i.e. merge the directory trees. -f Don't ask, think 'yes' on any question. SEE ALSO
remsync(1), cpdir(1), rsh(1), rcp(1), perror(3). DIAGNOSTICS
Messages may come from three different processes. One named "Slave" running in dir1, one named "Master" running in dir2, and synctree itself in a mediator role. The mediator will also perform the task of either the master or the slave if one of them is running locally. You need to know this to interpret the error messages coming from one of these processes. The messages are normally based on perror(3). Failure to contact a remote machine will be reported by rsh. Synctree should have a zero exit status if no errors have been encountered. BUGS
Directory dir2 will be created without asking. The master and slave processes get their error output mixed up sometimes (nice puzzle). The local and remote machine must use the same file type encoding. The link replacement strategy may lead to lack of space on a small device. Let synctree run to completion and then rerun it to pick up the pieces. Letting the local process keep its "synctree" name may be a mistake. It talks too much. AUTHOR
Kees J. Bot, (kjb@cs.vu.nl) SYNCTREE(1)

Check Out this Related Man Page

scandir(3)						     Library Functions Manual							scandir(3)

NAME
scandir, alphasort - Scans or sorts directory contents LIBRARY
Standard C Library (libc.a) SYNOPSIS
#include <sys/types.h> #include <sys/dir.h> int scandir ( char *dir_name, struct dirent * (*name_list[ ]), int (*select) ( struct dirent *dir ), int (*compare) ( struct dirent **dir1, struct dirent **dir2 ) ); int alphasort ( struct dirent **dir1, struct dirent **dir2 ); PARAMETERS
Points to the directory name. Points to the array of pointers to directory entries. Points to a user-supplied function that is called by the scandir() function to select which entries to include in the array. Points to a user-supplied function that sorts the completed array. Points to a dirent structure. Points to a dirent structure. DESCRIPTION
The scandir() function reads the directory pointed to by the dir_name parameter. It then uses the malloc() function to create an array of pointers to directory entries. The scandir() function returns the number of entries in the array and, through the name_list parameter, a pointer to the array. The select parameter points to a user-supplied function that the scandir() function calls to select which entries to include in the array. The selection routine is passed a pointer to a directory entry and returns a nonzero value for a directory entry that is included in the array. If the select parameter is a null value, all directory entries are included. The compare parameter points to a user-supplied function that is passed to the qsort() function to sort the completed array. If the compare parameter is a null value, the array is not sorted. The memory allocated to the array can be deallocated by freeing each pointer in the array, and the array itself, with the free() function. The alphasort() function alphabetically compares the two dirent structures pointed to by the dir1 and dir2 parameters. This function can be passed as the compare parameter to either the scandir() function or the qsort() function. A user-supplied subroutine may also be used. RETURN VALUES
The scandir() function returns -1 if the directory cannot be opened for reading or if the malloc() function cannot allocate enough memory to hold all the data structures. If successful, the scandir() function returns the number of entries found. The alphasort() function returns the following values: Less than 0 (zero): The dirent structure pointed to by the dir1 parameter is lexi- cally less than the dirent structure pointed to by the dir2 parameter. 0 (zero): The dirent structures pointed to by the dir1 parameter and the dir2 parameter are equal. Greater than 0 (zero): The dirent structure pointed to by the dir1 parameter is lexically greater than the dirent structure pointed to by the dir2 parameter. RELATED INFORMATION
Functions: malloc(3), opendir(3), qsort(3) delim off scandir(3)
Man Page