ファイル名が変更されたかどうかはわかりますか?

ファイル名が変更されたかどうかはわかりますか?

ファイル同期のための多くのツールは、ホームディレクトリの同期には適していません。だから私はRubyを学ぶために私自身の同期ツールを開発してきました。

私が経験している問題の1つは、(私の同期ツールで発生したようです)、ユーザーがファイルの名前を変更したりファイルを削除したときに発生することです。最初のケース(ユーザーが名前を変更した場合)を考えてみると、これが新しいファイルではなく名前が変更されたファイルであるかどうかを知る方法はありますか?たぶん私が知らないファイルの一意のIDかもしれません。ファイル記述子は調べてみるように聞こえますが、他の概念であると確信しています。

ベストアンサー1

ファイル名が変更されたことを確認できません。

ファイル名が変更された場合、そのファイルはインデックスノード数字は変更されません。 (これは、ネットワークファイルシステムなどの「外部」ファイルシステムでは該当しませんが、すべての「デフォルト」Unixファイルシステムでは該当します。) ただし、その逆は適用されません。同じ inode 番号を持つ新しいファイルが作成されました。したがって、以前に他のファイルと同じ inode 番号を持つファイルが表示されても、必ずしもファイル名が変更されたわけではありません。

inode番号はファイルを一意に識別します。存在するとき。これはハードリンクの検出には適していますが、名前の変更の検出には適していません。

ファイル記述子は特定のプロセスに関連付けられており、ここでは役に立ちません。

経験的な方法を考えることができます。ファイルのサイズ、変更時間、およびinode番号は以前と同じですが、名前が異なる場合、これは名前が変更されたことを意味します。この経験的な方法は、同じ名前、サイズ、変更時間など、変更されていないファイルを検索する同期ツールの数に似ています。

トラックファイルの名前変更について考えることができるすべてのツールは、ファイルの内容に基づいて行われます。調和名前が変更されたファイルの検出1つ以上のエンドポイントがリモートの場合。いくつかの最新バージョン管理システム(gitなど)も、名前が変更されたファイルを検出します。

私はあなたがファイル同期でやりたいことが何であれ、同期調和そしてバージョン管理はすでに存在します。

おすすめ記事