I use rsync v. 3.0.4 and when I need to move something I use it with the --remove-source-files. I prefer rsync than mv.

Unfortunately, when I use --remove-source-files, the directories are left on the source side (as said in the man). Is there a way to remove directories too once moved all the files?

link|improve this question

67% accept rate
feedback

3 Answers

up vote 3 down vote accepted

You could always delete them manually with something like this:

find /path/to/directory -depth -type d -print0 \
    | xargs --null --no-run-if-empty rmdir --

This will only delete empty directories.

link|improve this answer
good idea. Thanks! – dam Dec 19 '09 at 22:29
1  
A much more elegant solution with current find versions would be: find /path/to/directory -type d -empty -delete – Michael Renner Apr 3 '11 at 2:04
feedback

You might be able to get rsync to write a log file in a format that your script could parse for the names of the directories to delete. See man rsyncd.conf for the available log format escapes.

link|improve this answer
feedback

Can't you just "rm -rf" them?

link|improve this answer
yes of course, that's what I do. But in an automated process (a script) I would like it's the program doing that, otherwise I have to launch a script after that and I have to make checks on not-empty directories before deleting them. Not impossible to do but I'm looking for something ready to go. – dam Dec 19 '09 at 14:15
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.