shell 的萬用字元匹配非常強大,不過也非常危險,不少同學都碰到這樣的問題,比如 rm a*,結果乙個手抖,a 和星號之間多了個空格,結果目錄下的檔案都灰飛煙滅了……
bash 支援乙個特殊的變數 !$,永遠儲存著前一條命令的最後乙個引數,例如:
$ echo hello world
hello world
$ echo !$
world
那麼,這和防止誤操作有什麼關係呢?
比如你要刪除以 a 打頭的檔案,可以先通過 ls 確定一下:
$ ls a*
a1.txt a2.txt a3.txt a4.txt
如果確認無誤,之後只要:
rm !$
!$ 自動替換為上個命令的 a*,就可以把這些檔案乾掉了~ 不會再出現手抖打錯的情況了,如果萬用字元確實出了問題,第一步 ls 就可以發現
。還可以通過快捷鍵 esc + . 快速輸入上個命令的最後乙個引數,免去了輸入 !$ 的麻煩 ~ ( 多謝 druggo 補充 :)
如果你想一次刪除多個專案,還可以使用 !* ( 多謝 qt 補充 : )。
$ ls a* b*
a1.txt a2.txt b1.txt b2.txt
確認無誤後,通過 !* 來刪除:
rm !*
限制就是前面的 ls 命令,不能帶有引數,否則引數也會傳給 rm。
Linux shell命令 用 防止誤操作
shell 的萬用字元匹配非常強大,不過也非常危險,不少同學都碰到這樣的問題,比如 rm a 結果乙個手抖,a 和星號之間多了個空格,結果目錄下的檔案都灰飛煙滅了 bash 支援乙個特殊的變數 永遠儲存著前一條命令的最後乙個引數,例如 echo hello world hello world ech...
MySQL如何最大程度防止人為誤操作
root xingzhiyu mysql help grep dummy u,i am a dummy synonym for option safe updates,u.i am a dummy false在mysql命令加上選項 u後,當發出沒有where或limit關鍵字的update或del...
git 失誤操作
在將功能做好之後,沒有進行git add,而誤操作了git stash,進而將所修改的檔案全部回到上個版本,而git stash 是將做好的東西都儲存起來 也就是說 儲藏 可以獲取你工作目錄的中間狀態 也就是你修改過的被追蹤的檔案和暫存的變更 並將它儲存到乙個未完結變更的堆疊中,隨時可以重新應用。要...