予期せず、rm -rf
現在のディレクトリではなく、私のルートディレクトリでコマンドが実行されました。Ctrl+を押してファイルを削除しましたが、C一部のファイルが削除されました。影響を受けるアプリケーションをインポートするためにシステムから最近削除されたすべてのファイルを一覧表示できるLINUXコマンドはありますか?
オペレーティングシステム:CentOS 6.3
答え1
*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
補足説明
すべてのファイルがロケーション・データベースにリストされているわけではありません。構成ファイルは通常、除外さ
/etc/updatedb.conf
れるファイルとディレクトリを決定します。locate
私は過去にデフォルトでまだ存在しているファイルのみをリストしたバージョンを使用しました。このような場合は、locate
この機能をオフにする必要があります。
答え2
アーチの場合、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を興味のあるディレクトリに置き換えます。
これにより、変更されたファイルが表示されます。もう一度ありがとうございます!