≡ Menu

Linux: rsync Copy Directories Structures Tree Only

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:


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

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

Share this tutorial on:

Like this? Follow us on Twitter OR support us by using Patreon

{ 8 comments… add one }
  • Dans January 14, 2012, 11:13 am

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

  • Pablo August 26, 2012, 10:40 pm

    Thank you! :)

  • Deepak September 4, 2012, 9:03 pm

    Really Great, helps me a lot
    Thank you friend

  • srivay November 29, 2012, 3:19 pm

    Awesome………nodoubt the needed solution

  • h4unt3r November 1, 2013, 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?!

  • Gabriel January 23, 2014, 5:30 pm

    gracias, genial!

  • Roberto November 9, 2014, 2:37 am

    Thank you, it worked yust nice :D

  • David October 22, 2016, 2:44 am

    Thank you so much for this, it was exactly what we needed and worked so much faster than what we were trying to do before your solution !

Security: Are you a robot or human?

Leave a Comment

You can use these HTML tags and attributes: <strong> <em> <pre> <code> <a href="" title="">

   Tagged with: , , , , , , , , , , , , , , ,