从文件列表生成大括号扩展

从文件列表生成大括号扩展

这个大括号表达式将生成一个文件列表:

$ touch {foo{.t,t.t},other.txt,test{,.{ascii,t{est.qt,x{t,xt}}}}} 

$ ls
foo.t foot.t other.txt test test.ascii test.test.qt test.txt test.txxt

是否可以将文件列表转换回大括号扩展?

答案1

使用上面给出的文件列表,您只需在空命令行中按 ( M-{ ):

Alt-{

要得到:

$ {foo{.t,t.t},other.txt,test{,.{ascii,t{est.qt,x{t,xt}}}}}

或者,写入fo并按相同的键以获得:

$ foo{.t,t.t}

也就是说,将所有与字符串匹配的文件fo(在点之前)填充到大括号中。

man bash

Complete-into-braces (M-{)
执行文件名补全并插入用大括号括起来的可能补全列表,以便 shell 可以使用该列表。

相关内容