血的教訓:不規範使用 find 命令形成大量文件誤刪

感謝SF經過了個人發佈文章申請,今天給你們分享我最近的一次血淚史。python

因爲職業須要,LZ常常要下載聯盟某些源碼運行,此次運行python文件後,目錄裏多出了不少*.pyc的文件。做爲一個有潔癖的牛頭人,我固然得找出這些文件並刪除。shell

因而,我運行了 find . -name *.pyc,很好,文件全找出來了。find 有一個可選參數 -delete,看着這些待宰的羔羊,我默默的運行了:segmentfault

find . -delete -name *.pyc  # 小盆友們別運行這個

接下來就是見證奇蹟的時刻,個人目錄空了!!!!!
我明明寫了只刪除 *.pyc 啊!!!!
這是腫麼回事啊!!!bash

LZ好懼怕

吃下三根樹枝,縝密偵查,發現緣由所在,-delete 參數的位置不能亂寫啊尼瑪!!!!
LZ以前的寫法有嚴重的錯誤啊,find . -delete 意味着刪除當前目錄下的全部文件啊,而後再執行-name *.pyc,尼瑪目錄都被刪空了你說執行後會顯示毛啊,正確的寫法是這樣的:spa

find . -name '*.pyc' -delete  # 參數 -delete 必定要在匹配以後

@xen0n 提醒:
直接寫 *.pyc 也是不對的, shell會先行擴展. 你要用''(單引號)括住才行.code

心都涼了,LZ是在~/Downloads目錄裏運行的錯誤命令,存了好些年的蒼蒼老師片都被洗劫了,寫下此文告誡給各位,shell有危險,使用需謹慎。get

相關文章
相關標籤/搜索