I'm trying to synchronize two contents of folders with different name:
rsync -av ~/foo user@remote.com:/var/www/bar
I'd like to copy the content of foo
into bar
at remote host, but not the directory foo
itself. I've tried something like foo/*
, but rsync doesn't support that.
rsync always creates
/var/www/bar/foo
rsync interprets a directory with no trailing slash as copy this directory
, and a directory with a trailing slash as copy the contents of this directory
.
Try rsync -av ~/foo/ user@remote.com:/var/www/bar/
It's simple,
rsync /var/www/ /home/var
- copies the contents of /var/www/ but not the www folder itself.
rsync /var/www /home/var
- copies the folder www along with all its contents.
Not related only to rsync, but when you are looking for examples on how to use a GNU/Linux command, you can use "eg" which displays explicit examples. eg is available here, with instructions on how to install it: https://github.com/srsudar/eg
The result for eg rsync
is as follow
# rsync
copy the folder source_dir and its content into destination_dir
rsync -av source_dir destination_dir
copy the contents of source_dir (trailing slash) into destination_dir
rsync -av source_dir/ destination_dir
Navigate into the directory you would like to copy over, so:
cd ~/foo
Run this:
rsync -avz . user@remote.com:/var/www/bar
Success story sharing
mv
orcp
./
after the directory name.*
works is pretty strange.*
expands, so if you have many files in a directory, your commandcp src/* dest
expands into potentially a massive command. Again, all speculation, but maybersync
moved away from it for this reason