ミラーリングになってないミラーリング

なんでだかわからないけど、lftpのmirror -Rが特定のファイルをアップロードしないぞ。

ファイル更新時刻の見方が適当なのか、更新時刻以外に何か見ているのか、理由はなんだろう?

わかった。

やっぱりファイルサイズも一緒に見ている。
同じ文字数のファイル(例えば数字だけ書き換えた時)は、同一のファイルと見なされてアップロードされない。

こういうの問題じゃないの?どうやってみんな回避しているんだろう?

-n使えばいいのか。

manには「新しいファイルだけをアップロード(ダウンロード)する」って書いてあるけれども、これが違うんだ。
「更新されたかを比較する際に、タイムスタンプだけを使う」というのが正しいっぽい。(デフォルトは、タイムスタンプとファイルサイズを両方見て、片方が同じ場合はアップロード(ダウンロード)しない)

ただこれ、ファイルがなかったらどうなるんだ?

試してみると――あー、まあ存在しないファイルもちゃんとアップロードしてくれるわけだ。じゃあmirror -Rnv 使えばいいわけだな。
それにしても、この辺、オプションの使い方の感覚が違うから難しいな。q(quiet)オプションもないし。

しかしこの辺の情報がググっても出てこない、ということは

みんなそこまで厳密にミラーリングしてないな。というか、ftp越しのタイムスタンプ取得って、特に数ヶ月以上経つと基本的にずれることになるからこの辺のロジックは詳しく知っておかないと大変なんだけどなあ。

ん?--ignore-sizeつうオプションもあるぞ。

一応これでも同じサイズを判別には使わない、ことになっているっぽい。じゃあ今度は-nオプションとはどう違ってくるんだ?

追記

解決したのでリンク張っておく。