A very handy trick using the Bash shell in Linux involves the curly braces. The Bash manual at gnu.org defines brace expansion as "a mechanism by which arbitrary strings may be generated."
I use this mostly when working with files, especially making back ups of configuration files. For example, to copy /etc/X11/xorg.conf to /etc/X11/xorg.conf.backup, you could do this:
$ cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
or you could use brace expansion
$ cp /etc/X11/xorg.{conf,conf.backup}
which produces the same result. An easy way to visualize this is using the following example:
jacob@jakes-laptop:~$ echo a{r,l,cm}e
are ale acme
Topics:
Comments
Your cp example
Hi Jacob,
Interesting tip you explain here. Let me add to your cp example:
% cp /etc/X11/xorg.{conf,conf.backup}
Since the very reason for using brace expansion is to shorten the command by avoiding typing common things many times, you could as well have written:
% cp /etc/X11/xorg.conf{,.backup}
The "conf" part is also common, so you can take it out of the brace, and take advantage of the fact that empty strings are valid inside the brace. If that was not the case:
% cp /etc/X11/xorg.con{f,f.backup}
beware spaces
Use no spaces in the curly braces or it breaks:
OK:
% echo {Alessya,Tanya,Stephen}
Alessya Tanya Stephen
NOT OK:
% echo {Alessya,Jean Luke,Stephen}
{Alessya,Jean Luke,Stephen}
If you really need a space, quote them
ALSO OK:
% echo {Alessya,"Jean Luke",Stephen}
Alessya Jean Luke Stephen