詳細コピー:
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
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