[英]\! In Bash Commands
\\!
的功能是什么\\!
在bash命令中?
例如,我注意到下面的命令與\\!
行為會有所不同\\!
:
find subdir -lname 'test*' \\! -newer somethinghere
Google搜索似乎未顯示與\\!
相關的任何內容\\!
命令行格式除外。
將反斜杠放在字符轉義符之前,以防止將其解析為語法。 因此, \\!
是相當於'!'
的簡短形式 -確保find
通過!
作為參數,而無需外殼以任何方式解釋它。
如果沒有上述任何一個,則為[[ $- = *H* ]]
(在交互式shell中為默認值,並且默認情況下為true),並且histchars
的默認值未更改!
觸發歷史擴展。 這是根據bash手冊頁的QUOTING部分:
當使用命令歷史記錄擴展工具時(請參見下面的HISTORY EXPANSION),歷史記錄擴展字符通常是
!
必須加引號,以防止歷史記錄擴展。
! 用於否定 ,例如:
find . -readable
將返回所有可讀文件/目錄,而
find . ! -readable
將返回所有無法讀取的文件/目錄(鏈接斷開或-r權限)
\\ char用於轉義。
但是,奇怪的是,在我的計算機(Debian / bash)上,我需要轉義* char而不是!! 一。 更明確地說,我需要寫
find . -name abc\*
但
find . -name abc\* ! -readable
find . -name abc\* \! -readable
工作並具有相同的效果
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.