5

So I currently do stuff like:

rm -rf ../../../$CLOUD_INSTALL_SUBDIR/lib_boost
mkdir ../../../$CLOUD_INSTALL_SUBDIR/lib_boost
cp -r ../../../$BOOST_ROOT_DIR/$BOOST_INSTALL_SUBDIR/lib/* ../../../$CLOUD_INSTALL_SUBDIR/lib_boost/

Which sucks... So I wonder how to update/remove/add only updated files between 2 folders (in demo we have the folder with the latest stuff ../../../$BOOST_ROOT_DIR/$BOOST_INSTALL_SUBDIR/lib/ and a folder with stuff that may be outdated ../../../$CLOUD_INSTALL_SUBDIR/lib_boost)?

2 Answers 2

6

Rsync is your newest best friend.

rsync -av original/folder/ new/folder/

The trailing slashes are important on both; if you exclude the first, it will copy that folder as it's own folder into new/folder/. It's best to use the -a flag to preserve permissions, timestamps, etc.

Rsync will also automatically create directories as necessary to duplicate the structure.

6
  • Man, you were faster :) +1 Commented Jan 27, 2012 at 4:42
  • Is rsync installed on most Linux unix distribs like rm or cd? Commented Jan 27, 2012 at 17:43
  • @myWallJSON Yes. While rsync isn't part of the absolutely minimal can't-even-boot-without-it core system like rm and cd, it's installed by default by most distributions, so you can expect it to be available on non-embedded Linux installations. Commented Jan 27, 2012 at 23:28
  • Rsync is marked ‘optional’ on Debian, i.e. not installed by default. I habitually (and explicitly) install it on every new box I deploy. However, it's marked ‘standard’ on Ubuntu. I wouldn't say you can expect it to be installed, I'd say your mileage may vary. Commented Jan 28, 2012 at 0:33
  • @laebshade: I'd also add -HAXS to rsync invocations unless you know for a fact there aren't hard links (-H), ACLs (-A), extended attributes (-X) or sparse files (-S). None of these are implied by -a. Commented Jan 28, 2012 at 0:38
1

You could use rsync for that, in your example it will like that:

rsync -va ../../../$CLOUD_INSTALL_SUBDIR/lib_boost/ ../../../$CLOUD_INSTALL_SUBDIR/lib_boost

Where -v option enables verbose mode and -a enables archive mode

You could read more about rsync on its manual page

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.