!!: 在 bash 中是什么意思?

ile*_*ras 11 bash touch syntax

观看视频(https://vimeo.com/56166857 & https://www.youtube.com/watch?v=9CTfGS0gEOk @ 1m:34s),主持人(TJ Holowaychuk)写道:

touch !!:2{...}
Run Code Online (Sandbox Code Playgroud)

!!:2在任何地方都找不到什么意思。

我得到(重复上一个命令)!!但是,的含义

!!:2
Run Code Online (Sandbox Code Playgroud)

我不知道,找不到答案,这里的搜索没有返回任何结果,所以......我被卡住了。

语境:

为了一次创建多个目录,他写道:

mkdir -p lib/{login,signup,users,posts}
Run Code Online (Sandbox Code Playgroud)

为了在每个目录中创建相同的文件,他写道:

touch !!:2/{package.json,index.json}
Run Code Online (Sandbox Code Playgroud)

输出是:

touch lib/{login,signup,users,posts}/{package.json,index.json}
Run Code Online (Sandbox Code Playgroud)

结果是:

这两个文件是在每个目录中创建的。

roa*_*ima 16

你误读了主持人输入的内容。这是视频中实际给出的内容:

mkdir -p lib/{login,signup,users,posts}
touch !!:2/{package.json,index.json}
Run Code Online (Sandbox Code Playgroud)

这扩展了!!重复前一个命令的指令,但:2修饰符表示使用第二个参数。所以,这!!:2lib/{login,signup,users,posts}组件。

  • 手册中的@iletras,“_`!!` 参考前面的命令。这是`!-1`的同义词。_”和“_Word 指示符用于从事件中选择所需的词。A:分隔事件来自单词指示符的规范。[...] 单词从行的开头开始编号,第一个单词用 0(零)表示。_” (2认同)