介绍
在Linux shell中,“Brace expansion”(花括号扩展)是一种用来生成一个或多个字符串的机制。当shell执行这个表达式时,它会自动展开成所有可能的组合。
下面是一个经典的例子:
$ echo {apple,banana,cherry}
apple banana cherry
在这个例子中,花括号表达式包含三个单词,用逗号分隔。
当shell执行echo命令时,它会将这个表达式展开成三个单词,并将它们作为参数传递给echo命令,从而输出这三个单词。
使用场景
对我个人来说,在创建文件夹和文件的时候这非常有用,尤其是创建一些序列文件或多个文件的时候。
创建多个文件夹
可以使用花括号展开一次创建多个文件夹,例如:
$ mkdir {folder1,folder2,folder3}
这将创建名为"folder1"、"folder2"和"folder3"的三个文件夹。
创建多个文件
也可以使用花括号展开一次创建多个文件,例如:
$ touch {file1,file2,file3}.txt
这将创建名为"file1.txt"、"file2.txt"和"file3.txt"的三个空文件。
创建一系列数字命名的文件
可以使用花括号展开创建一系列数字命名的文件,例如:
$ touch file{1..5}.txt
这将创建名为"file1.txt"、"file2.txt"、"file3.txt"、"file4.txt"和"file5.txt"的五个空文件。
创建多层嵌套文件夹
可以使用花括号展开创建多层嵌套文件夹
$ mkdir -p folder/{subfolder1,subfolder2}/{subsubfolder1,subsubfolder2}
"folder/subfolder1/subsubfolder1"、"folder/subfolder1/subsubfolder2"、"folder/subfolder2/subsubfolder1"和"folder/subfolder2/subsubfolder2"将创建四个嵌套文件夹 ,Nice!!
-p参数告诉mkdir命令创建必要的父文件夹。