[英]\! 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.