예전에 달리고 있었는데
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