Читать книгу Linux Bible - Christopher Negus - Страница 128
Using brace expansion characters
ОглавлениеBy using curly braces ({}
), you can expand out a set of characters across filenames, directory names, or other arguments to which you give commands. For example, if you want to create a set of files such as memo1
through memo5
, you can do that as follows:
$ touch memo{1,2,3,4,5} $ ls memo1 memo2 memo3 memo4 memo5
The items that are expanded don't have to be numbers or even single digits. For example, you could use ranges of numbers or digits. You could also use any string of characters, as long as you separate them with commas. Here are some examples:
$ touch {John,Bill,Sally}-{Breakfast,Lunch,Dinner} $ ls Bill-Breakfast Bill-Lunch John-Dinner Sally-Breakfast Sally-Lunch Bill-Dinner John-Breakfast John-Lunch Sally-Dinner $ rm -f {John,Bill,Sally}-{Breakfast,Lunch,Dinner} $ touch {a..f}{1..5} $ ls a1 a3 a5 b2 b4 c1 c3 c5 d2 d4 e1 e3 e5 f2 f4 a2 a4 b1 b3 b5 c2 c4 d1 d3 d5 e2 e4 f1 f3 f5
In the first example, the use of two sets of braces means John, Bill, and Sally each have filenames associated with Breakfast, Lunch, and Dinner. If I had made a mistake, I could easily recall the command and change touch
to rm -f
to delete all of the files. In the next example, the use of two dots between letters a
and f
and numbers 1
and 5
specifies the ranges to be used. Note the files that were created from those few characters.