回覆列表
  • 1 # 使用者686558026966

    首先簡明扼要地給出答案:如果被刪除的檔案或目錄所在的目錄沒被刪除,並且刪除了待查詢檔案或待查詢目錄之後,沒有對所在目錄作任何寫操作,則可以;否則不能知道準確的刪除時間。所謂“對目錄作寫操作”,指的是新增、刪除、重新命名、移動該目錄下的檔案或目錄。

    一個檔案如果刪除了,那麼有關於它的資訊雖然可能沒有被從磁碟上物理擦除,但是就從檔案系統中消失了,檔案系統不會特意去記錄或保留已經被刪除的檔案的資訊。不過,在對目錄進行寫操作時,目錄的“最後狀態變化時間”(ctime)和“最後修改時間”(mtime)是會變的,因此我們可以從這裡入手。

    要想查詢本目錄的最後修改時間,可以這樣操作:開啟終端(命令列),輸入:

    之後,該目錄、上級目錄以及該目錄下的所有目錄和檔案的資訊,包括最後修改時間,就都按順序列出來的。最後修改時間越接近當前(也就是Unix Time數值越大)的,在輸出內容中,就越靠前。如果該目錄在進行這個刪除操作後,沒有進行過任何寫操作,則本目錄(也就是./)應該在最前面;如果它不在最前面,則說明在刪除了你要查詢的檔案或目錄後,該目錄有了新的寫操作,這樣就查不出準確時間了;不過即使在最前面,也不能保證就一定沒有過新的寫操作(因為有可能在被查詢檔案被刪除之後,有新的檔案或目錄先被建立再被刪除)。如果本目錄(也就是./)確實排在最前面,並且在刪除了待查詢檔案或目錄後,沒有新的寫操作(這要你自己根據你的使用情況自行判斷,特別是要考慮後臺執行的程式),那麼以上命令的輸出內容中的第一行中的時間就是要查詢的檔案或目錄的刪除時間。

    但是,如果不符合以上條件,導致查不出準確的刪除時間,我們也可以想辦法確定刪除時間的取值範圍。首先,被查詢檔案的刪除時間絕不會晚於所在目錄的最後修改時間。所在目錄的最後修改時間就是以上命令輸出內容中“本目錄”(也就是./)那行的那個時間。不過,“縮小包圍圈”的方法就比較多種多樣了,要根據檔案的型別和被使用的情況,靈活地採取措施。這裡有幾種辦法可供參考:

    1、如果用資料恢復軟體能搜尋到這個被刪除檔案(不一定能做到),那麼我們就可以確定:刪除的時間不會早於該檔案被刪除前最後的atime,ctime,mtime中最接近現在的那個。(atime是最後讀取時間,ctime是最後更改狀態時間,mtime是最後修改時間)檔案系統不會記錄每一個檔案被刪除的時間,但是以上資訊有可能能被恢復出來。

    3、用last命令可以檢視計算機近期的開關機記錄,確定什麼時候計算機是關的,也很重要。

    方法還有很多,需要具體情況具體分析。

    注:以上命令是Ubuntu的,iOS可能會稍有不同,具體的請看man page(輸入man(空格)要查詢的命令)。另外,所有這些方法都建立在一個前提之上:系統時間是準確的,至少中間沒有調過,否則問題就複雜的多了。若有疑問請回復我。

  • 中秋節和大豐收的關聯?
  • 以 “______最珍貴"為題寫一篇作文?