Linux

是否有一個 UNIX 命令可以列出系統中所有最近刪除的文件

  • August 24, 2017

意外rm -rf地向我的根目錄而不是目前目錄啟動了一個命令。Ctrl我通過+停止了文件刪除,C但一些文件已被刪除。是否有 LINUX 命令列出所有最近從系統中刪除的文件以獲取受影響的應用程序?

作業系統:CentOS 6.3

*nix 系統通常安裝了一個locate實用程序。它有一個數據庫,通常每晚更新一次,其中包含系統上(幾乎)所有文件的名稱。趕緊跑:

locate /path/to/dir/of/interest

您應該會看到上次數據庫更新時該目錄中的文件列表。您可以將此與目前列表進行比較。

因為它會被新版本自動覆蓋,所以您現在可以製作該數據庫的備份副本。在受 debian 影響的系統上,它儲存在/var/lib/mlocate/mlocate.db.

如何顯示失去的文件

  1. 備份舊數據庫:
cp /var/lib/mlocate/mlocate.db ~/old.db
  1. 更新數據庫。執行此操作的命令可能會有所不同。在類似 debian 的系統上,嘗試:
sudo /etc/cron.daily/mlocate
  1. 獲取目錄的新舊文件列表:
locate -d ~/old.db /your/dir | sort >~/old.list
locate /your/dir | sort >~/new.list
  1. 獲取所有新文件和失去文件的列表:
diff ~/old.list ~/new.list

補充筆記

  • 並非所有文件都列在 locate 的數據庫中。配置文件通常/etc/updatedb.conf確定排除哪些文件和目錄。
  • 在過去,我使用了一些版本locate,預設情況下,只會列出仍然存在的文件。如果您的 是這種情況locate,您將需要關閉該功能。

引用自:https://unix.stackexchange.com/questions/127027