題 撤消Linux的rm? [重複]


可能重複:
UNDO LINUX垃圾桶命令 

嗨,

是否有任何簡單的方法來撤消 rm 命令?

這個問題純粹是理論上的;我從來沒有刪除過整個午餐時間運行的基準隊列的日誌。


30
2017-08-30 12:09


起源


欺騙: superuser.com/questions/31171/undo-in-command-line-operation - nagul
......或者至少是非常密切相關的,即使問題本身的表述更為籠統 - Jonik


答案:


在ubuntu或類似的:

$ sudo apt-get install trash-cli
$ alias rm=trash

然後將該別名放在.bashrc或適合您選擇的shell的登錄腳本中。

trash-cli package是GNOME和KDE等使用的同一垃圾桶的命令行界面。所以你通過的任何東西刪除 trash 命令可以通過GNOME / KDE恢復,反之亦然。

中的其他命令 trash-cli 包是 trash-listtrash-empty,和 restore-trash


32
2017-08-30 18:41



+1表示trash-cli,-1表示別名rm。
別名有什麼問題 rm?我喜歡在意外刪除時使用撤消按鈕,即使在命令行上也是如此。也, trash-cli 通過接受(並忽略)許多GNU來明確地促進這一點 rm 選項。此外,OP要求撤消rm的方法。沒有別名,此解決方案無法正確回答問題。 - Ryan Thompson
@Ryan:因為你已經習慣了rm意味著與rm命令真正做的不同的東西,然後你在沒有別名時犯了錯誤。習慣於使用trash命令而不會發生這種情況。
@Roger:或者......你可以別名 rm 然後催眠自己忘記你做了。這樣你仍然可以繼續使用 rm 好像它是最後的....但如果你滑倒並去“哦不!”你沒有完全搞砸。 (即不要依賴它的“可恢復”功能) - mpen
@RyanThompson:這是一個很好的提示,但如何配置它也可以使用 sudo rm? - takeshin


傳統的答案是:

您從最新的備份中恢復該文件。你有最近的備份,不是嗎?

因為在許多unix文件系統中這種簡單是不可能的,或者是非常困難的。

正如其他人已經註意到的那樣,這不再是問題的全部,而是所有問題,但不會犯這種錯誤仍然是首選方法。


15
2017-08-30 14:02



我真的打算將我的所有腳本放在每小時提交的bzr存儲庫中。 - Adam Matan
現代的答案是:從最近的文件系統快照中恢復文件。 :-) - knweiss
這是一個很酷的問題......我通常不會備份〜/ Downloads ...並通過傳遞來消滅我的內容 rm -fr *(1)* ......每個文件都會消失。因此備份並不總是解決方案。 Trash-cli聽起來很冷。 - erm3nda
不,有備份 總是 解決方案。僅僅因為你選擇不備份某些東西,不備份而不是解決方案,它會讓你變得愚蠢,因為沒有備份。 - djsmiley2k


為了防止出現明顯的未來錯誤,您可能希望將rm別名為rm -i ...


4
2017-08-30 12:22



我一般認為這永遠不會阻止任何錯誤('y'是非常自動輸入的),但是會消耗很多時間,並且鼓勵使用He-Whose-Name-Must-Be-Mentioned rm -rf。 - Adam Matan
在弄亂之前,它確實給你一個額外的去。我一般只是 ls 以前使用相同的參數,所以我可以看到將要發生的事情。 - Rich Bradshaw
我通常會故意刪除文件,我只是意識到我以後需要這些文件。所以互動無濟於事 - andrewtweber