題 撤消“rm -rf~”命令?


我有一個文件夾,我不想命名'〜',所以從我輸入的命令行

rm -rf ~

並意外刪除了我的主文件夾(因為〜解析為/ home / username)。有沒有辦法回來或者我基本上需要從頭開始重新創建帳戶?


109
2018-05-05 18:30


起源


什麼文件系統? - Tarnay Kálmán
顯然,你們沒有幽默感。 - Blomkvist
雖然這不能直接回答你的問題, rm -rf "~" 引號將查找該文字名稱而不是擴展它。但無論如何我會害怕使用它 - 我會使用類似的東西 ls 要么 cd 首先驗證我得到了正確的目錄,或從GUI文件管理器中刪除該文件夾。也許首先重命名dir(mv "~" tilde),驗證然後刪除。 - Henrik N
對於將來,請不要在命令行中以交互方式使用rm。使用類似的實用程序 垃圾 並且你1)不能再犯同樣的錯誤2)不能習慣一個會導致你麻煩的rm的別名別名。 - Fred Nurk
@HenrikN:./~而不是“〜”做同樣的事情,但也適用於其他常見的有問題的文件名,比如那些以破折號開頭並看起來像選項的文件名。 - Fred Nurk


答案:


總的來說,沒有簡單的方法。

您可以從每日備份中恢復。


145
2018-05-05 18:34



您對備份的評論是殘酷的,100%到目前為止。 - Benjamin Bannier
OS X為備份方式設置了標準 應該 工作(尤其是Time Capsule)。看到 maketecheasier.com/... 建議如何與Ubuntu有點相同的東西。 - Thorbjørn Ravn Andersen
@ThorbjørnRavnAndersen - 確實如此,除非Time Machine神經衰弱。我有時間機器在六個月內兩次對我產生了驚嚇。 - Fake Name
非現場備份很棒,而且非常實惠。我用 Backblaze (Mac / Windows)5美元/電腦/月。很多人似乎都喜歡 Crashplan (蘋果/在Windows / Linux的)。 - Henrik N
每日什麼???? - Luc M


其他人(如 @RiMMER@亞當,和 @James T.)已經提到,對於大多數文件系統,可以恢復大部分或全部數據(可能沒有文件名),因為數據實際上沒有被清零,只是從文件表中刪除。這不僅適用於Linux - Windows和Mac也是如此。

但是,沒有人提到最重要的事情 - 關掉你的電腦。現在。

許多程序 - 包括您現在正在使用的互聯網瀏覽器 - 都會將數據緩存到硬盤驅動器,而您所做的任何事情都可能導致計算機調整/寫入交換文件。這兩件事都會寫入硬盤上的自由扇區,可能會覆蓋您的寶貴數據。

因此,請關閉計算機,取出硬盤驅動器,然後將其放入另一台計算機中。以只讀方式安裝硬盤驅動器,並將文件恢復到單獨的硬盤驅動器上。當你恢復了你可以感興趣的一切 - 和 只要 然後 - 將文件寫回原始驅動器。


65
2018-05-06 02:20



即使關機過程也可以寫入硬盤。我猶豫是否建議立即拔掉你的電腦,因為這絕對可以做到 許多 更糟糕的是,但是......好吧,根據數據的重要程度,您可能需要考慮它。 - BlueRaja - Danny Pflughoeft
根據驅動器/ OS /安裝點,可以立即卸載和/或重新安裝只讀,而無需關閉電腦,然後關閉等。 - Matthew Scharley
killall rm 而不是關閉。 - Fred Nurk
根據主目錄的大小和硬盤的大小,覆蓋包含數據的自由扇區的可能性非常小。 - Mike Speed
你可以使用這種方法恢復文本文件而不會有太大的困難(只要你對它們有什麼粗略的想法),但二進製文件是如此困難,基本上是不可能的。 - Satanicpuppy


我相信每個linux用戶在實際了解備份的重要性之前,必須先了解這個痛苦的教訓,並註意細節和小心。

例如,如果您要刪除看起來很奇怪的文件,則可以先在該文件上運行沒有副作用且不會對數據進行更改的命令。例如,你跑了嗎?

cd ~

在嘗試刪除文件夾之前,您會看到它會將目錄更改為您的主文件夾,而不是 ~ 夾。完成足夠的故障排除步驟後,您需要正確學習真正的命令 cd 進入 ~ 文件夾,然後您可以按向上箭頭鍵從歷史記錄中拉出最後一個命令然後更改 cd 至 rm 和 然後,只有這樣 嘗試刪除該文件夾。

我建議在表演之前採取這樣的步驟 任何 永久的行動。它不是永久的或萬無一失的,但如果你在執行有副作用的行為時採取這種程度的謹慎,你就有更好的機會防止那些哎呀。


12
2018-05-06 02:41



在你跳躍之前先看看,然後 ls 在你面前 rm。 - LawrenceC


如果您正在使用ext3文件系統,那麼 ext3grep 是你最好的朋友。可以找到關於使用ext3grep的好教程(以及許多其他教程) 這裡


7
2018-05-05 19:00





你可以嘗試使用 testdisk 取消刪除 個別檔案。這看起來只適用於ext2和NTFS(但值得一試)。

如果你有ext3或ext4,你可以恢復 已知文件使用 photorec,這可能最終會比你想要的恢復得更多。 Photorec恢復沒有文件名信息的文件,因此瀏覽文件可能會很繁瑣。


5
2018-05-05 18:49





如果你有足夠大的外部驅動器,你有另一個可能最安全的選擇。您將需要足夠的空間來存儲整個主分區,包括可用空間。

從CD啟動,根本不安裝主驅動器。 安裝外部驅動器。 dd將主驅動器分區放入外部驅動器上的文件中。 將文件掛載為環回設備 對此圖像執行取消刪除工作,確保您不會對原始文件系統造成任何損害。根據文件系統的不同,可能需要嘗試很多方法,其中一些可能具有破壞性。

當我不知道它會做什麼時,即使我將它安裝為只讀,這也為我節省了一次Reiser4的測試版。當時我在某處讀到了期刊寫作仍有可能。

它也是一種從垂死驅動器中保存數據的好方法。


4
2018-05-06 14:31



在大多數日記FS上提及+1時,即使是只讀裝載也可能將數據寫為期刊活動的一部分。 - sleske


有一些技術可以通過檢查尚未回收的inode來恢復文件。刪除後寫入文件系統的數據越多,恢復數據的可能性就越小。從意外數據刪除中恢復的最佳策略是從備份恢復。


2
2018-05-05 18:46





對您的數據感到抱歉。其他人都在討論如何處理您的數據問題,但這裡有一些關於下次看到文件夾時如何處理的信息 ~

  1. 查找創建它的人並確保他們再也不會這樣做。
  2. 不要用 -rf 或任何瘋狂的有力的參數rm進行刪除。而是把它變得好看又慢,並確保你能看到發生了什麼。通過在shell中轉義它,可以輸入代碼而不擴展到主目錄。理論上你 可以  rm -rI \~,但你可以更進一步。
    1. 第一, cd \~ 獲取INTO該文件夾,甚至可以使用 pwd 檢查你到那兒。當你在那裡時,十個刪除它的內容。再次小心,但清理文件夾 rf -rI * 如果你需要得到 .* 太。
    2. 現在回過頭來 cd .. 並刪除目錄 rmdir \~

2
2018-05-07 18:27





我只是cd .snapshot並恢復文件。但是,我在工作中這樣做,我不知道w。來自.snapshot目錄。我可能它是一個Linux功能。


1
2018-05-06 07:04



我相信這要歸功於NAS盒子。 - mlk


alias rm="rm -i"

假設您正在使用Bash shell(將它放在您的.bashrc文件中,以便它繼續存在於您打開的新shell中)。

這應該導致rm要求你確認要刪除的內容,這很好,特別是在你做-rf的時候,但它也會在提示符中將'〜'擴展到主目錄的完整路徑,這應該會給你一個線索你沒有刪除文件'〜'但實際上是你的homedir。

$ rm -rf ~
rm: examine files in directory /nas/users/u12345/unix (yes/no)? n

從技術上講,這不是您問題的答案,但可能有助於您將來避免此類問題。

編輯:有些人可能會阻止你使用這種技術,因為它會讓你不太注意“rm”命令。根據我的經驗,這遠非事實。實際上,別名的效果是阻止你使用“rm -rf” - 因為你知道它會導致許多你不想回答的提示 - 並且為了得到一個無提示“rm -rf “你需要故意將rm命令稱為/ bin / rm(或其他)。這導致更有意識和有意識地使用“rm”命令 - 因為你總是需要先使用rm和心理選擇“rm或/ bin / rm” - 在你的服務器和你發生的任何其他事件上登錄。每個人都有的世界 思想 在使用rm之前確實會更安全!


1
2018-05-06 05:30



取決於你所使用的系統。至少在RHEL5和OS X 10.6上, -f 覆蓋了 -i 選項。 - Daniel Beck♦
我不知道。我向YMMV追加我的建議並且“不要在家裡嘗試這個,或者更重要的是在工作中”! - aaa90210
如果你這樣做,你有一天會沒有這個別名 - 也許你坐在另一台電腦上或者你已經到了某個地方 - 你將使用rm用於安全網。你會做一些你後悔的事。 - Fred Nurk
@FredNurk完全正確。最好的辦法是只添加-i,或者不使用-f選項。 - Arda Xi
當我有很多要刪除的文件時,我就開始了 rm -i my_list_of_files。然後我使用CTRL-C並調用我的命令將其修改為 rm -rvf my_list_of_files - Luc M


恢復工具 - 命令行:

恢復工具 - 桂:

信息:

根據我的個人經驗,我使用“UFS Explorer”和photorec獲取數據

(1)=不是開源的,不是免費的

(2)=不開源,免費

(3)=開源和免費

(4)=有ntfs支持

(5)=具有目錄結構功能


0
2018-06-10 04:22