昔は走っていました。
rsync -rv /home/myname/mydir1 myhost:/home/myname/mydir1
そして得た
/home/mydir1/mydir1/...
重複した「mydir1」がないように、この問題をどのように解決できますか?
答え1
使用法セクションの例を参照してください。rsync のマニュアルページ
あなたはそれを使用することができます
rsync -rv /home/myname/mydir1 myhost:/home/myname
または
rsync -rv /home/myname/mydir1/ myhost:/home/myname/mydir1
答え2
rsync -rv /home/myname/mydir1/* myhost:/home/myname/mydir1
mydir1の下のファイル(およびサブディレクトリ)のみをコピー
rsync -rv /home/myname/mydir1 myhost:/home/myname/mydir1
ディレクトリ自体をコピーしてmydir1 / mydir1を取得します。
francois@zaphod:~/tmp$ rm -rf b
francois@zaphod:~/tmp$ mkdir b
francois@zaphod:~/tmp$ rsync -rv a/* b
sending incremental file list
a
sent 80 bytes received 35 bytes 230.00 bytes/sec
total size is 0 speedup is 0.00
francois@zaphod:~/tmp$ tree b
b
└── a
0 directories, 1 file
francois@zaphod:~/tmp$ rm -rf b
francois@zaphod:~/tmp$ rsync -rv a b
sending incremental file list
created directory b
a/
a/a
sent 108 bytes received 63 bytes 342.00 bytes/sec
total size is 0 speedup is 0.00
francois@zaphod:~/tmp$ tree b
b
└── a
└── a
1 directory, 1 file
答え3
/
これはテールゲートが重要なまれな状況です。foo
と指定は多くのコマンドでfoo/
同じです。しかし、意味上違いがあります。 rsync を含むいくつかのコマンドでは、末尾は/
これがディレクトリであるという事実に基づいて特別なタスクを実行するようにコマンドに指示します。次のような状況が発生した場合...
mkdir foo bar
touch foo/baz
...そしてfooからbarにコンテンツをコピーしたい場合は指定しないでください...
rsync -rv foo bar
...代わりに指定してください...
rsync -rv foo/ bar
それ以外の場合、rsyncはツリー全体(親ディレクトリを含む)を見つけた宛先ディレクトリにコピーするとします。
他の同様の例効果的なリンクをリストするときの意味は次のとおりですls
。
mkdir foo
touch foo/baz
ln -s foo bar
ls -l bar
lrwxrwxrwx 1 philip philip 3 May 7 14:58 bar -> foo
ls -l bar/
total 0
-rw-r----- 1 philip philip 0 May 7 14:58 baz