Mik*_*ail 10 linux keyboard-shortcuts bash autocomplete
如果您在一个包含大量文件的目录中,请在 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
Run Code Online (Sandbox Code Playgroud)
你点击Alt+Shift+{它会 awk-complete 每个文件名
<Alt+Shift+{>
Run Code Online (Sandbox Code Playgroud)
完成为:
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}
Run Code Online (Sandbox Code Playgroud)
和
day1<Alt+Shift+{>
Run Code Online (Sandbox Code Playgroud)
完成为:
day1{0.tar.gz,.tar.gz}
Run Code Online (Sandbox Code Playgroud)
问题:这是什么?这个叫什么?它在哪里有用?我该如何配置它?我可以对以子字符串结尾而不是以一个开头的文件执行此操作吗?
在 Bash 中,它执行 readline 函数complete-into-braces。
大括号扩展是一种缩写对多个文件的引用的有用方法。
例如:
ls -l /path/to/dir/*.{c,h}
Run Code Online (Sandbox Code Playgroud)
将列出所有以“.c”或“.h”结尾的文件。
来自man bash:
complete-into-braces (M-{)
执行文件名补全并插入可能的 com 列表?括号内的pletions,以便shell可以使用列表(请参阅上面的括号扩展)。
和
大括号扩展
大括号扩展是一种可以生成任意字符串的机制。这种机制类似于路径名扩展,但生成的文件名不需要存在。要大括号扩展的模式采用可选前导码的形式,后跟一系列逗号分隔的字符串或一对大括号之间的序列表达式,后跟可选的后记。大括号中包含的每个字符串都以前导码为前缀,然后将后记附加到每个结果字符串,从左到右扩展。大括号扩展可以嵌套。每个展开后的字符串的结果没有排序;保留从左到右的顺序。例如,a{d,c,b}e 扩展为“ade ace abe”。
Completion 根据定义完成,因此它适用于以字符串开头的文件。