我是在移动硬盘一个 fat32 分区里面( cd /Volumes/fat32 ),想删除某个文件夹内以 "._" 开头的文件,然后就执行了以下命令:
sudo find . -name "._*" -exec rm -rf {} \;
等待的时间比较长,就想着去别的目录( /data )干点事,然后发现 /data 目录不见了!!然后 cd /,发现 / 也不见了!!
结果就是我用 time machine 恢复到昨天的版本了(今天 time machine 没跑)。
问题来了,这条命令出啥问题了?之前在 Linux 下用过这命令没问题啊。命令应该没输错,我是复制的。
1
xuyinan503 Nov 22, 2015 没找到 ._开头的文件,得到空
然后就执行了 rm -rf ? |
2
crayygy Nov 22, 2015 不要乱执行 rm -rf ,任何时候再执行这个操作的时候都应该三思
|
3
hicdn Nov 22, 2015 批量删除一般都是 ls|find|grep 重定向 /tmp/xx.txt
确认一遍后再 cat /tmp/xx.txt|xargs rm -rf |
5
wolfan Nov 22, 2015 via Android … 我好像一直在用这条命令删东西,到现在还没出过事真是感动啊😉
|
7
v1024 Nov 22, 2015 骚年,用 trash 保平安。
|
8
cxh116 Nov 22, 2015 看命令本身没有问题. 有可能是 bsd 的命令行 bug.
碰到几次用 7z 解压 zip 出来乱码.然后用 ls grep xargs 等命令组合起来就是删除不掉.总是有字符转义问题. 有可能是你的要删除掉的文件名有一些特殊字符,最终某行被解析成 rm -rf /. rm -rf 别乱用 sudo.更别乱 su - root 执行 rm -rf |
9
yanw OP |
10
cxh116 Nov 22, 2015 @cxh116 可以在 mac 下运行这样的命令测试
cd /tmp/ touch "a b" find . -name "a b"| xargs rm 报这样的错 rm: ./a: No such file or directory rm: b: No such file or directory |
12
cxh116 Nov 22, 2015
@cxh116 测试了一下,linux 也有此问题.应该是用法不对,特殊字符需要加特殊参数对待.
http://stackoverflow.com/questions/16758525/use-xargs-with-filenames-containing-whitespaces |
14
crayygy Nov 22, 2015
其实 Adobe 才是真正的防 rm -rf 利器 :doge
|
15
lululau Nov 22, 2015 via iPhone 用 find dir -other-opts -delete 代替 -exec rm {} \;
|
19
iphone7166 Nov 23, 2015 find . -name "._" -print
确认后 find . -name "._*" -delete |
20
WildCat Nov 23, 2015 via iPhone brew install trash
alias rm="You should use 'del' instead." alias del="trash" |
21
dorentus Nov 23, 2015
rm 文件不要加 -rf 啊
|
22
hyq Nov 23, 2015 名字里面有空格?
dot_clean 可以删除那些点文件 |
23
JerningChan Nov 24, 2015
你应该这样的,到去你的目的盘
rm -rf ._* 这样就好了嘛... 为毛要写的这么繁杂? |
24
JerningChan Nov 24, 2015
而且._* 这类文件好像是 mac 的 spotlight 产生的吧?
完全没必要删了呀 |