amoblin
V2EX  ›  程序员

rm -rf ~/a/b/c 时误删了文件怎么办?

By amoblin at 2014 年 5 月 15 日 · 6513 次点击
在输入路径时如果一不留神按了回车。。。 :(

大家有木有因为这个命令误删文件(夹)的呢?

一般如何避免呢?

我能想到的一个方法:

cd /a/b; rm -rf c

不过感觉略嫌麻烦~
24 条回复  •  2014-05-23 17:12:44 +08:00
jokie
   2
jokie  
   2014 年 5 月 15 日
等你误删了就不嫌麻烦了
ChiangDi
   3
ChiangDi  
   2014 年 5 月 15 日 via Android
蛋疼。。
应该建个文件夹,不用的文件就扔进去,定时清理。
solu
   4
solu  
   2014 年 5 月 15 日   ❤️ 2
alias rm='mv --target-directory ~/.Trash'
tonghuashuai
   5
tonghuashuai  
   2014 年 5 月 15 日
4 楼正解
reusFork
   6
reusFork  
   2014 年 5 月 15 日
btrfs + snapshot,误删了也不怕
jsonline
   7
jsonline  
   2014 年 5 月 15 日
rm 后面永远不接 / 和 ~
looly
   8
looly  
   2014 年 5 月 15 日
http://www.xiaoleilu.com/linux-restore-file/
我写的,前段时间刚经历过。
skydiver
   9
skydiver  
   2014 年 5 月 15 日
alias rm='rm -i'
ivenvd
   10
ivenvd  
   2014 年 5 月 15 日
赶紧喝口水压压惊。
amoblin
   11
amoblin  
OP
   2014 年 5 月 15 日
@solupro 这个不错,但是参数怎么传给alias呢?
@skydiver 删除文件夹时还是要加-f的,否则无尽的y和回车。。。
@looly 不错,可惜Mac下木有~
holy_sin
   12
holy_sin  
   2014 年 5 月 15 日
git checkout -f如果可以的话
artwalk
   13
artwalk  
   2014 年 5 月 15 日
还好不是 rm -rf ~ /a/b/c
lululau
   14
lululau  
   2014 年 5 月 15 日   ❤️ 1
如果是 OS X 的话可以参考: http://alphahelical.com/code/osx/trash/vsrc
pubby
   15
pubby  
   2014 年 5 月 15 日
1. 磁盘最少mirror的
2. 文件系统用支持snapshot的
3. 代码用版本控制的
4. 异地备份是最保险的

基本上不会出大事故,而且恢复迅速
lizheming
   16
lizheming  
   2014 年 5 月 15 日
http://segmentfault.com/q/1010000000438405 身为SF用户应该先去SF上搜索一下啊..
p.s.推荐那个Trash的方案。
hanks315
   17
hanks315  
   2014 年 5 月 16 日
mac下,mv对文件和目录的操作没有-r的区别,下面的别名,可以按照rm的习惯写,但执行的时候,选项被过滤掉了

function __protect_rm {
mv ${@: -1} ~/.Trash #取最后一个函数参数,也就是目标名
}
alias rm='__protect_rm'
amoblin
   18
amoblin  
OP
   2014 年 5 月 16 日
@lizheming SF居然增加了模糊效果,还以为自己度数又上升了呢
SF的cookie保存周期太短了,老让登陆 :(

@hanks315 这个很简便易行,赞!
lizheming
   19
lizheming  
   2014 年 5 月 16 日
@amoblin (´Д`)为啥我一直都没有登陆过呢..甚至跨电脑跨系统好像都没有登陆过..不过那个模糊效果实在是好讨厌,我也不是很喜欢。
amoblin
   20
amoblin  
OP
   2014 年 5 月 16 日
@lizheming 我是用Github登陆的,难道和这个有关?
lizheming
   21
lizheming  
   2014 年 5 月 16 日
@amoblin 他们说Github是保存一个月的,应该不会这么快吧...不过我之前用新浪微博登陆的,总是频繁要求登陆,后来我就怒了..自从用了SF自己的登陆后,登陆什么的再也不用烦恼了(´Д`)
wizardoz
   22
wizardoz  
   2014 年 5 月 16 日
先打路径,路径确认以后按C+a到行首打rm -fr。
不过我一般不会直接用-fr参数,都是删除的时候提示错误,才会加上这个参数。
gerorim
   23
gerorim  
   2014 年 5 月 18 日   ❤️ 1
Install trash-cli

$ sudo apt-get install trash-cli

Put files in the trash with

$ trash-put file1 file2

alias rm='trash-put'
amoblin
   24
amoblin  
OP
   2014 年 5 月 23 日
@gerorim mac下如何使用apt-get安装trash-cli呢?不过受此启发,brew search trash发现了好东西:rmtrash ---- rmtrash is a small utility that will move the file to OS X's Trash rather than obliterating the file (as rm does).

貌似不错。很方便的解决了 :)
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
© 2026 V2EX · 58ms · 3.9.8.5