rsync는 최신 파일을 덮어쓰지 않습니다.

rsync는 최신 파일을 덮어쓰지 않습니다.

세부정보 복사:

mkdir test && cd test
mkdir folder && cd folder

echo "#line1" > file
rsync -a -I . ..
echo "#line2" >> ../file
rsync -a -I . ..

산출:

../file위의 rsync 명령으로 덮어써야 하므로 의 내용이 예상치 못한 것입니다. 그것은 단지 보여야한다#line1

more ../file
#line1
#line2

more file  # <-- expected because we haven't edited this file
#line1

질문:

파일을 항상 덮어쓰고 싶습니다. 위에서 뭔가 잘못한 걸까요?

시스템 메시지:

시도한 Rsync 버전:

rsync version 3.0.4 protocol version 30

그리고

rsync version 2.6.9 protocol version 29

OS가 시도했습니다:
SUSE Enterprise
Linux 3.0.101-71.1.10543.0.PTF.974263.72.1.csc-default x86_64
KDE 4.3.5

그리고

Mac OS X El Capitan (10.11)

답변1

플래그와 함께 별칭이 이미 설정된 경우 이는 매우 어리석은 질문임이 밝혀졌습니다 -u.

\rsync -a . ..가명을 탈출하려면 달려가면 됩니다 .

답변2

rsync 버전 3.0.9 프로토콜 버전 30을 사용하여 CentOS 7을 실행하고 단계를 수행하여 올바른 결과를 얻었습니다.

이 단계는 저에게 효과적이므로 아무런 문제가 없습니다. 그러나 이 옵션 없이 다시 실행해 볼 수 있습니다 -I.

➜ /tmp$  mkdir test && cd test
➜ test$  mkdir folder && cd folder
➜ folder$  echo "#line1" > file
➜ folder$  cat file 
#line1
➜ folder$  rsync -a -I . ..
➜ folder$  ls ..
file  folder
➜ folder$  cat ../file 
#line1
➜ folder$  echo "#line2" >> ../file
➜ folder$  cat ../file             
#line1
#line2
➜ folder$  rsync -a -I . ..        
➜ folder$  cat ../file     
#line1
➜ folder$  rsync --version
rsync  version 3.0.9  protocol version 30

답변3

버전 3.0.6에서는 예상대로 작동하는 것 같습니다. 저장소에서 업데이트된 rsync를 확인하겠습니다.

[user@server ~]$ mkdir test && cd test
[user@server test]$ mkdir folder && cd folder
[user@server folder]$ 
[user@server folder]$ echo "#line1" > file
[user@server folder]$ rsync -a -I . ..
[user@server folder]$ echo "#line2" >> ../file
[user@server folder]$ rsync -a -I . ..
[user@server folder]$ cat ../file 
#line1
[user@server folder]$ cat file 
#line1

동기화 정보

[user@server folder]$ rsync --version
rsync  version 3.0.6  protocol version 30

시스템 메시지

CentOS 6.7 final
Linux server 2.6.32-573.12.1.el6.x86_64 #1 SMP Tue Dec 15 21:19:08 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

관련 정보