K rsync existuje pěkné GUI zvané Grsync kde si méně zdatní uživatelé (zejména ti kteří mají problém se zadáváním cest) mohou vše pohodlně "naklikat".
Pak budou dotazy tohoto typu zcela zbytečné...
Grsync je v repozitáři Universe který je potřeba si ve zdrojích SW "zapnout". Pak už stačí standardní
sudo apt-get install grsync
rsync synchronizuje složky (či obsahy složek) - nelze zadávat soubory
Význam lomítek na konci cest vysvětluje "modrý otazník" v grsync
Jinak samozř. man rsync
Té červeně zvýrazněné poznámce moc nerozumím. Asi jsi to špatně napsal. Nelze kopírovat
mezi dvěma vzdálenými hosty, asi mělo být. Test:
Vytvořil jsem dvě složky
test-rsync-1 a
test-rsync-2. Do první složky jsem uložil tři soubory. Z toho dva jsou skryté.
Výpis obsahu složek:
$ ls -a test-rsync-1
. .. conk.conf .conkyrc .conkyrc-lua
Druhá složka je prázdná:
$ ls -a test-rsync-2
. ..
Kopírování jen souborů s příponou conf:
$ rsync -av ./test-rsync-1/*.conf ./test-rsync-2
sending incremental file list
conk.conf
sent 4,201 bytes received 35 bytes 8,472.00 bytes/sec
total size is 4,096 speedup is 0.97
výpis složky:
$ ls -a test-rsync-2
. .. conk.conf
Vymazání obsahu složky:
$ rm -r test-rsync-2/{.,}* 2&>/dev/null
Teď je opět prázdná:
$ ls -a test-rsync-2
. ..
Kopírování komplet obsahu složky:
$ rsync -av ./test-rsync-1/. ./test-rsync-2
sending incremental file list
./
.conkyrc
.conkyrc-lua
conk.conf
sent 11,057 bytes received 76 bytes 22,266.00 bytes/sec
total size is 10,809 speedup is 0.97
Cílová složka obsahuje vše co zdrojová:
$ ls -a test-rsync-2
. .. conk.conf .conkyrc .conkyrc-lua
Výmaz:
$ rm -r test-rsync-2/{.,}* 2&>/dev/null
Opět prázdná:
$ ls -a test-rsync-2
. ..
Kopírování zdrojové složky do cílové. Tzn, že se v cílové vytvoří složka s názvem zdrojové a ta bude obsahovat své všechny soubory:
$ rsync -av ./test-rsync-1 ./test-rsync-2
sending incremental file list
test-rsync-1/
test-rsync-1/.conkyrc
test-rsync-1/.conkyrc-lua
test-rsync-1/conk.conf
sent 11,081 bytes received 77 bytes 22,316.00 bytes/sec
total size is 10,809 speedup is 0.97
V cílové složce je vytvořená nová s názvem zdrojové
$ ls -a test-rsync-2
. .. test-rsync-1
A ta obsahuje soubory:
$ ls -a test-rsync-2/test-rsync-1/
. .. conk.conf .conkyrc .conkyrc-lua
Jinak řečeno bez udání lomítka na konci zdroje je s tím pracováno jako se souborem a je včetně svého obsahu nakopírován. Každý soubor má své inode. A v tomto případě je inode složky. A tak je s ní pracováno stejně. Je nakopírována i s obsahem. Lidsky řečeno je vytvořena nová složka stejného názvu a její obsah je také zkopírován.
Pakliže se na konci zdroje uvede lomítko, je pracováno jen s inode childers. Lidsky řečeno jen s obsahem složky.
Jak je na mém příkladu vidno, použil jsem při kopírování jen obsahu za lomítkem ještě tečku:
$ rsync -av ./test-rsync-1/. ./test-rsync-2Což doporučuji kvůli kompatibilitě s příkazy
cp a spol. Kde tečka znamená aktuální adresář. To jest vše včetně skrytých souborů.
Test:
Příkazu cp je jedno jestli má zdroj na konci lomítko nebo ne. Vždy vyžaduje přepínač -r:
$ cp -r test-rsync-1 test-rsync-2
Obsah cílové složky:
$ ls -a test-rsync-2
. .. test-rsync-1
Má vše co tam má být
$ ls -a test-rsync-2/test-rsync-1/
. .. conk.conf .conkyrc .conkyrc-lua
Výmaz:
$ rm -r test-rsync-2/{.,}* 2&>/dev/null
Je prázdná:
$ ls -a test-rsync-2
. ..
Kopírování jen obsahu zdrojové složky, avšak kompletního:
$ cp -r test-rsync-1/. test-rsync-2
Výpis:
$ ls -a test-rsync-2
. .. conk.conf .conkyrc .conkyrc-lua
Výmaz:
$ rm -r test-rsync-2/{.,}* 2&>/dev/null
a kontrola:
$ ls -a test-rsync-2
. ..
Kopírování obsahu zdrojové složky, avšak jen obyčejné soubory:
$ cp -r test-rsync-1/* test-rsync-2
No jo, je to tak:
$ ls -a test-rsync-2
. .. conk.conf
Proto doporučuji si to zautomatizovat lomítkem a tečkou.