特定のファイルが変更/編集されたときにすべてのインスタンスを一覧表示する方法はありますか?

特定のファイルが変更/編集されたときにすべてのインスタンスを一覧表示する方法はありますか?

現在ファイルがありますabc.txt。このファイルが編集されたとおり(作成された時点から)すべてのインスタンスを表示できるかどうかを知りたいです。

尋ねる:abc.txt端末で特定のファイルの内容を編集するときにバックログされた日時をどのように表示できますか?

Ubuntu 14.04.1 LTSを使用しています

答え1

これはいいえ一緒にいるかもしれないネイティブファイルファイルシステムから。あなたが探しているものバージョン管理システムgit(またはsvnなど)など、ユーザーがファイルをチェックアウトしてチェックインすると、アクティビティと変更に関するすべての情報がそのバージョン管理システムのデータベースに保存されます。

答え2

ほとんどのファイルシステムはこれを行う方法を提供していません。ただし、Unix / Linuxシステムでファイルの変更を追跡する方法はいくつかあります。

  • 次のログ構造ファイルシステムナフ、すべての変更をスナップショットとして追跡します。これらのスナップショットはできるだけ長く保存されます(状態によって異なります)。nilfs_cleanerd設定とファイルシステムの変更量)、特定のファイルで利用可能なスナップショットは、以下を使用して確認できます。lscp。これはファイルの(おそらく部分的な)記録を提供する。スナップショットはアーカイブされたチェックポイントに変換できます。
  • 連続バックアップシステムは、追跡するファイルのスナップショットを定期的に撮影します。これらのシステムはほとんど商用です。ウィキペディア確かに。ドロップボックスそして衝突計画私はある程度継続的なバックアップを実装する2つのシステムを知っています。彼らはすべての変更を追跡するわけではありませんが、与えられたファイルのすべての履歴を保持します。
  • 〜のようにジャニス前述のように、バージョン管理システムを使用すると、ユーザーはファイル履歴を保存できますが、保存される変更は通常自発的です。したがって、ファイル履歴は変更が保存されたポイントのみを反映し、ファイルに対する実際の編集アクティビティは反映しません。 )。一部のVCSラッパーはある程度自動化を提供できます。etckeeper覚えておくべきことは、パッケージ管理ツールを使用するたびに自動的に変更を追跡することです。

答え3

事実以降は不可能です。 「一般」ファイルシステムは、以前のバージョンのファイルのログを保持しません。わかるのはファイルの最後の変更時間だけです(ファイルが変更された時間であり、ls -lほとんどのファイルマネージャに表示されます)。編集者が誤ってバックアップファイルを残さない限り、以前のバージョンを見つけたか、いつ作成されたかを知る方法はありません。

ファイル所有者は変更時間を変更できるため、セキュリティ上の問題がある場合、または作成者を信頼していない場合は役に立ちません。ファイルには手動で設定できない別のタイムスタンプであるctime(inode変更時間)があり、ファイルが変更または移動されるか、そのメタデータ(修正時間を含む)が変更されるたびに更新されます。したがって、ファイルのctimeは、ファイルの現在のバージョンが遅くてもその時点で作成されたことを示しています(システム管理者を信頼すると仮定)。を使用してctimeを表示できますls -lc

ファイルの周りのアクティビティを記録するには、次を使用できます。ファイルにアクセスするときのログ記録と同じ:一つイノティファイウォッチロギングファイルシステム仲裁規則など。これらすべての方法は、設定後に発生した状況のみを記録します。

特定の日付のファイルの状態を追跡するには、バックアップを作成します。

ファイルのすべての連続バージョンを自動的に保存するにはCopyFSファイルシステム

便利な方法でファイルの連続バージョンを追跡するには、次のようにします。バージョン管理システム。これは協力メカニズムです。変更した人が新しいバージョンをコミットすることを決定すると、そのバージョンが記録されます。

関連情報