什么是Alt + Shift + {?


10

如果您位于具有大量文件的目录中,请在CentOS和Ubuntu上进行测试

$ ls
day1.tar.gz  day2.tar.gz  day3.tar.gz  day4.tar.gz  day5.tar.gz  day6.tar.gz  day7.tar.gz  day8.tar.gz day9.tar.gz day10.tar.gz

而且您点击Alt+Shift+{它会awk-完成每个文件名

<Alt+Shift+{>

完成到:

 day{1{0.tar.gz,.tar.gz},2.tar.gz,3.tar.gz,4.tar.gz,5.tar.gz,6.tar.gz,7.tar.gz,8.tar.gz,9.tar.gz}

day1<Alt+Shift+{>

完成到:

day1{0.tar.gz,.tar.gz}

问题:这是什么?这个叫什么?在哪里有用?我该如何配置?对于以子串结尾而不以一个子串结尾的文件,我可以这样做吗?

Answers:


9

在Bash中,它执行readline函数complete-into-braces

括号扩展是缩写对多个文件的引用的一种有用方法。

例如:

ls -l /path/to/dir/*.{c,h}

将列出所有以“ .c”或“ .h”结尾的文件。

来自man bash

大括号内完整(M- {)
执行文件名补全,并在括号内插入可能完成的列表,以便该列表可用于外壳程序(请参见上文的“括号扩展”)。

括号扩展
括号扩展是一种可以生成任意字符串的机制。此机制类似于路径名扩展,但是生成的文件名不必存在。花括号扩展的模式采用可选的前导形式,然后是一系列用逗号分隔的字符串或一对花括号之间的序列表达式,然后是可选的后记。前缀在花括号中包含的每个字符串之前加上前缀,然后将后缀附加到每个结果字符串之后,从左向右扩展。

括号扩展名可能会嵌套。每个扩展字符串的结果均未排序;保留从左到右的顺序。例如,a {d,c,b} e扩展为“ ade ace abe”。

根据定义,完成操作已完成,因此它可以处理以字符串开头的文件。


我很惊讶..这是一个反括号扩展!……好人;)……
Peter.O 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.