10

感谢SF通过了我的发布文章申请,今天给大家分享我最近的一次血泪史。

由于职业需要,LZ经常要下载联盟某些源码运行,这次运行python文件后,目录里多出了很多*.pyc的文件。作为一个有洁癖的牛头人,我当然得找出这些文件并删除。

于是,我运行了 find . -name *.pyc,很好,文件全找出来了。find 有一个可选参数 -delete,看着这些待宰的羔羊,我默默的运行了:

find . -delete -name *.pyc  # 小盆友们别运行这个

接下来就是见证奇迹的时刻,我的目录空了!!!!!
我明明写了只删除 *.pyc 啊!!!!
这是肿么回事啊!!!

LZ好害怕

吃下三根树枝,缜密侦查,发现原因所在,-delete 参数的位置不能乱写啊尼玛!!!!
LZ之前的写法有严重的错误啊,find . -delete 意味着删除当前目录下的所有文件啊,然后再执行-name *.pyc,尼玛目录都被删空了你说执行后会显示毛啊,正确的写法是这样的:

find . -name '*.pyc' -delete  # 参数 -delete 一定要在匹配之后

@xen0n 提醒:
直接写 *.pyc 也是不对的, shell会先行扩展. 你要用''(单引号)括住才行.

心都凉了,LZ是在~/Downloads目录里运行的错误命令,存了好些年的苍苍老师片都被洗劫了,写下此文告诫给各位,shell有危险,使用需谨慎。


皮拉帕拉
815 声望8 粉丝

人生就像DOTA,需要扎实的补刀、风骚的走位、必胜的欲望和永不放弃的心。