http://q.hatena.ne.jp/1424488643
この質問の回答者id:syamaokaさんへの返信からの続きです。
上記回答を受けて、
http://doyaling.hatenablog.com/entry/2015/02/22/010926
このブログ記事に自分でまとめたように、一応、rsyncの--iconvオプションを使えるようにはなりました。
しかし疑問が2点ありまして・・・。
まず1点目としては、
sudo -s
cd /usr/bin
mv rsync rsync-2.6.9
ln -s /usr/local/bin/rsync .
exit
としたときの、「ln -s /usr/local/bin/rsync .」の最後のピリオドは何なんでしょうか?
べつにいらないような気がしつつ、このピリオドを含めてコピペしたコマンドで成功したのでとりあえず満足しているのですが、どういう意味なのかなと…。
またもう1点は、上記ブログ記事の最後に書いたように、--iconvオプションを使うと、すべてのファイルが新たに同期先に上書きされてしまって、差分の同期になりませんでした。
同期元と同期先で、ファイル名のエンコードが異なるので、全部「更新あり」と判定されてしまうんでしょうか。何か、解決方法ありますでしょうか・・・。
ポイント不要です。
「ln -s /usr/local/bin/rsync .」の最後のピリオドは何なんでしょうか?
. はカレントディレクトリを意味しています。ln コマンドは主にシンボリックリンク(ファイルの別名みたいなもの)を作成するために使用されるコマンドで、ln -s src dest のように指定すると、dest というファイル名で src の別名を作成できます。dest に . を指定した場合は src のファイル名と同じファイル名でカレントディレクトリにシンボリックリンクを作成します。
- iconvオプションを使うと、すべてのファイルが新たに同期先に上書きされてしまって、差分の同期になりませんでした。
http://blog.livedoor.jp/hack_le/archives/30878779.html によると既知の問題のように見えます。
ちなみに、rsync ではだいたい rsync -avz のオプションを付与して使います。また、--delete を使う場合はコピー先ディレクトリの trailing slash に気を付けなければなりません。rsync の運用に関するノウハウは、http://koseki.hatenablog.com/entry/20090424/rsync を確認されるとよいかと思います。
2015/02/22 20:29:52ありがとうございます.
2015/02/28 16:01:44「.」については,何か名前を指定した場合はその名前でカレントディレクトリ内にエイリアスがつくられ,「.」とだけ書いた場合は,ソースと同じ名前のものがカレントディレクトリ内に作成されるということですね
あと,後段の問題は,結局よくわかりませんでした.
アスタリスクを付けても同じことが起きました.
症状をいうと,
rsync -auv --delete --iconv=UTF8-MAC,UTF-8 ~/Desktop/SRC/ ~/Desktop/DST/
⇒差分だけでなく全てのファイルが上書きされる
rsync -auv --delete --iconv=UTF8-MAC,UTF-8 ~/Desktop/SRC/* ~/Desktop/DST/
⇒差分だけでなく全てのファイルが上書きされる
rsync -auv --delete ~/Desktop/SRC/ ~/Desktop/DST/
⇒差分だけ上書きされる
rsync -auv --iconv=UTF8-MAC,UTF-8 ~/Desktop/SRC/* ~/Desktop/DST/
⇒差分だけ上書きされる
という感じでした.deleteとiconvが両方ある場合だけおかしなことになっています.
まあ私は,Macで定期的に外付けHDDのバックアップをとりたいだけで,ターミナルで履歴をみながら作業する場合以外はべつに表示上文字化けしてても困ることはない(文字化けするのはrsyncの-vオプションによって表示される履歴の部分のみです)ので,iconvを普段はつけなければいいような気もします.