Linux: rsync Copy Directories Structures Tree Only

by on January 16, 2011 · 6 comments· LAST UPDATED January 16, 2011

in

I am looking for to only sync directories structures only. How do I copy directory structure tree without copying any files under Linux or UNIX operating system to remove server or local directory?

You need to use the rsync command. The rsync remote-update protocol allows rsync to transfer just

the differences between two sets of files across the network connection, using an efficient checksum-search algorithm. Make sure it is installed on all servers for remote copy. The syntax is as follows to copy directories tree only:

 
rsync -av -f"+ */" -f"- *" /path/to/src /path/to/dest/
rsync -av -f"+ */" -f"- *" /path/to/apache/logs/ root@www433.nixcraft.net.in:/path/to/apache/logs/
 

If you are using an older rsync version, try:

 
rsync -av --include='*/' --exclude='*' /path/to/src /path/to/dest/
rsync -av --include='*/' --exclude='*' /path/to/apache/logs/ root@www433.nixcraft.net.in:/path/to/apache/logs/
 

rsync Command For Directory Structures / Tree Only

Consider the following layout in /var/logs/apache/ for each domain:

cricketnow.in/
cyberciti.biz/
hexindia.net/
io9.in/
nixcraft.com/
theos.in/

You can sync just directories by excluding everything else. Open a command-line terminal (select Applications > Accessories > Terminal), and then type the following commands or login using ssh to the remote server. You want to copy all dirs i.e. exclude everything that is not a directory, enter:
# cd /var/log/apache/
# rsync -av -f"+ */" -f"- *" . root@server2.nixcraft.com:/var/log/apache/

Sample outputs:

building file list ... done
./
cricketnow.in/
cyberciti.biz/
hexindia.net/
io9.in/
nixcraft.com/
theos.in/
sent 388 bytes  received 98 bytes  972.00 bytes/sec
total size is 0  speedup is 0.00

You can also make local copies as follows:
# cd /var/log/apache/
# rsync -av -f"+ */" -f"- *" . /jailfs/apache/httpd_root/var/log/apache/

See also:

If you need assistance with Linux / UNIX rsync command-line options, turn to the man page first. It will give you detailed information, parameters and switches for rsync command:
$ man rsync

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 6 comments… read them below or add one }

1 Dans January 14, 2012 at 11:13 am

Excellent. Rsyncing the directory structure only was exactly what I needed!

Reply

2 Pablo August 26, 2012 at 10:40 pm

Thank you! :)

Reply

3 Deepak September 4, 2012 at 9:03 pm

Really Great, helps me a lot
Thank you friend

Reply

4 srivay November 29, 2012 at 3:19 pm

Awesome………nodoubt the needed solution

Reply

5 h4unt3r November 1, 2013 at 6:04 pm

You can use a find command for this if you want the whole directory tree, not just the top level. Of course when pushing a structure remotely its better to manipulate locally then push:

find -type d -exec mkdir -p /{} \;

This will copy the directory structure of to under the dir.

Isn’t the find command wonderful?!

Reply

6 Gabriel January 23, 2014 at 5:30 pm

gracias, genial!

Reply

Leave a Comment

Tagged as: , , , , , , , , , , , , , , ,

Previous Faq:

Next Faq: