除了 mkdir 之外还有大括号扩展命令吗?

除了 mkdir 之外还有大括号扩展命令吗?

找到了这个漂亮的生活黑客宝石来创建多个目录:https://unix.stackexchange.com/a/640/7768

我想知道是否还有其他命令支持大括号扩展?

答案1

大括号是 shell 扩展,因此您可以将它们与任何命令一起使用。根据记录,它不一定是..,也不一定是字母。数字使用范围,您可以使用逗号表示独立值,并且可以将其与常规标记或其他扩展混合使用:

$ echo {1..3} {a..c} {1..3}-{a,c}
1 2 3 a b c 1-a 1-c 2-a 2-c 3-a 3-c

你可以嵌套,我经常用它来安装/卸载({,un}installing:))包。

aptitude install package{,-{dev,doc}}

扩展到

package package-dev package-doc

答案2

此外,它甚至可以有正则表达式。正确形成的大括号扩展必须包含未加引号的左大括号和右大括号,以及至少一个未加引号的逗号或有效的序列表达式。任何错误形成的大括号扩展都保持不变。例子:

mkdir /usr/local/src/bash/{old,new,dist,bugs}
chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}

http://www.gnu.org/s/bash/manual/html_node/Brace-Expansion.html

http://www.linuxjournal.com/content/bash-brace-expansion

相关内容