誤ってrm -rf
コマンドが現在のディレクトリではなくルートディレクトリに対して起動されました。ファイルの削除を停止しました Ctrl+C しかし、いくつかのファイルはすでに削除されています。影響を受けるアプリケーションを取得するために、システムから最近削除されたすべてのファイルを一覧表示するLINUXコマンドはありますか?
オペレーティングシステム:CentOS 6.3
* nixシステムには通常、locate
ユーティリティがインストールされています。これには、通常は毎晩更新されるデータベースがあり、システム上の(ほぼ)すべてのファイルの名前が含まれています。ただ走れ:
locate /path/to/dir/of/interest
そして、最後のデータベース更新の時点でそのディレクトリにあったファイルのリストが表示されるはずです。これを現在のリストと比較することができます。
新しいバージョンで自動的に上書きされるため、今すぐそのデータベースのバックアップコピーを作成できます。 Debianの影響を受けたシステムでは、/var/lib/mlocate/mlocate.db
に保存されます。
古いデータベースのバックアップを作成します。
cp /var/lib/mlocate/mlocate.db ~/old.db
データベースを更新します。これを行うコマンドは異なる場合があります。 Debianのようなシステムでは、次のことを試してください。
Sudo /etc/cron.daily/mlocate
ディレクトリの新旧のファイルリストを取得します。
locate -d ~/old.db /your/dir | sort >~/old.list
locate /your/dir | sort >~/new.list
すべての新規ファイルと欠落ファイルのリストを取得します。
diff ~/old.list ~/new.list
すべてのファイルがlocateのデータベースにリストされているわけではありません。構成ファイル(通常は/etc/updatedb.conf
)は、除外されるファイルとディレクトリを決定します。
過去に、私はlocate
のいくつかのバージョンを使用しました。これは、デフォルトでは、まだ存在するファイルのみをリストします。 locate
の場合は、その機能をオフにする必要があります。
Archの場合、ひれの悪いファイルを誤って削除してしまったのではないかと心配していました... | xargs rm-rfコマンド形式。 John1024はアドバイスをありがとう。
すべてを単純化するために(私のWebディレクトリ/ srv/httpの場合)、これをすべて1行で実行します。
Sudo cp /var/lib/mlocate/mlocate.db ~/old.db; Sudo updatedb; Sudo locate -d ~/old.db /srv/http | sort >~/old.list; Sudo locate /srv/http | sort >~/new.list; Sudo diff ~/old.list ~/new.list;
/ srv/httpを問題のディレクトリに置き換えてください。
変更されたファイルが表示されます。再度、感謝します!