Linuxで最近削除されたファイルとフォルダーを見つける方法


23

/home/sam/officedocuments数百のフォルダーとファイルがある特定のフォルダー()があります。誤っていくつかのファイルとフォルダーを削除したと思いますが、よくわかりません。

どのファイル/フォルダーがあったかを見つける方法:

  • Linuxで最近削除されましたか?
  • Linuxで最近変更されましたか?

削除されたファイルとフォルダーを知りたいだけです。削除されたファイルとフォルダーを回復することは私にとって重要ではありません。

OS:CentOS


1
使用しているファイルシステムを教えてください。たとえば、ext2、ext3、ext4の場合、ext3grepユーティリティを使用して、削除されたファイルに関する情報を見つけることができます。いくつかのスクリプトを使用すると、特定のディレクトリに基づいて削除されたファイルをリストする単純なアプリケーションをまとめることができるはずです。ただし、これらのユーティリティにはディスクへのrawアクセスが必要であるため、適切に使用しないと非常に危険です(ディスクに同時に書き込むと、現在の操作が壊れた/誤ったデータを返す可能性があることを覚えている場合、非ブロッキング読み取り専用操作は完全に安全です)。
GoFundMonica-codidact.org 13年1

回答:


3

…最近Linuxで変更されましたか?

find変更時刻で検索するために使用します。たとえば、過去3日間にタッチされたファイルを見つけるには:

find /home/sam/officedocuments -mtime -3

「3日以上」の場合は、を使用します+3

…最近Linuxで削除されましたか?

ほとんど不可能です。ファイルが削除されると、それは単になくなります。ほとんどのシステムでは、これはどこにも記録されません。


ありがとう。3日間、私は使用する必要があります3...最後の30分に使用する必要があるものは?
スミットグプタ

Linuxは、ファイル/フォルダーを削除する前に常に確認を求めますか?
スミット・グプタ

16
「かなり不可能」これは単なる間違いであり、このため私これに反対票投じなければなりません。削除時間はいくつかのファイルシステムに保存されext3ます。そのようなfsの例はファイルシステムです。ext3grepは、ハントダウン時に役立つ場合があります。superuser.com/a/433785/132604を入手しました。このファイルには、削除されたファイルとそれらに関する情報を見つける(おそらく回復する)ために使用できる情報とユーティリティへのリンクがあります。ファイルを削除すると、ほとんどのファイルシステムでは、実際には削除されず、必要に応じて上書きされる可能性があるスペースとしてマークされます。
GoFundMonica-codidact.org 13年1

バックアップからファイルを復元し、それらのファイルのリストをファイルシステム上のファイルと比較できる場合があります。これにより、見つからないファイルと新しく作成されたファイルのリストが生成されます。Grawityの回答では、時間通りにフィルタリングできることが既に示されているため、削除されたファイルのみに制限できます。
ヘネス

11

おそらくInotify Toolsをインストールする必要があります。次に、このinotifywaitコマンドを使用して、指定したディレクトリで発生するイベントをリッスンできます。

特に、削除されたファイルとフォルダーを監視したい場合は、これを使用します

inotifywait -m -r -e delete dir_name

この出力を何らかのファイルに記録します。

これで問題が解決することを願っています


1
これに対する最善のアプローチのように聞こえます。答えに含めたいiwatchという名前の有望なcli-app / daemonがあります。適切なツールを使用して問題を解決するための+1。
GoFundMonica-codidact.org 13年1

ravi、@ SampoSarrala-これは、/ドライブのマウント/アンマウントを考慮して、ルート内のファイルを監視する場合に適用できますか?その場合、削除ログを保持するために実行可能な唯一のものは、フックするカーネルモジュールになりますunlinkstackoverflow.com/questions/8588386/…を参照)。また、man inotifywait「-再帰:警告:...監視中にこのオプションを使用すると、大きなツリーを表示するのにかなり時間がかかる場合があります。また、...、ユーザーごとのinotify監視の最大数に達します。デフォルトの最大値は8192です。 "
-sdaau

@sdaau dmesg [| tail]は、[最近の]マウント/アンマウントを表示するはずです。
SeldomNeedy

該当する場合、どのプロセスがファイルを削除したか(cronジョブなど)を見つける方法もあるのだろうか。ファイルの場合は、不思議な...消えてい
Nagev

0

Linuxは通常rm、コマンドラインから使用していると仮定して、ファイルを削除する前に確認を求めません。

過去30分間に変更されたファイルを見つけるには、touch --date="HH:MM" /tmp/reference30分前(HH:MMは30分前に対応)のタイムスタンプを持つreferenceというファイルを作成するために使用します。次に、を使用find /home/sam/officedocuments -newer /tmp/referenceして、参照より新しいファイルを見つけます。

GUIツールを使用してファイルを削除した場合、それらはまだ何らかの種類の「ゴミ箱」にある可能性があります。デスクトップ環境に使用しているものに依存します。rmコマンドラインから使用した場合は、この回答に記載されているユーティリティのいずれかを試してください。(そのリンクの@Sampoへのヒント。)


「永遠になくなった」とは言わないでください...別の答えについてのコメントを参照してください。今、私はこのように感じています:xkcd.com/386 :)
GoFundMonica-codidact.org
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.