{,} en los comandos de Linux y Unix?
↳ $ date | cat c4t3g0ry;
- - Publicado el 04/11/2014 | Esto es sobre: Unix/Linux Sys.Admin

Por lo general utilizo esto {,} cuando necesito crear archivos numerados: archivo1, archivo2, archivo»n»:
> [ rafael ] ~ $ touch archivo{1..3}.log
> [ rafael ] ~ $ ls -lt
total 0
-rw-r--r-- 1 rafael 0xl337 0B Nov 4 00:52 archivo1.log
-rw-r--r-- 1 rafael 0xl337 0B Nov 4 00:52 archivo2.log
-rw-r--r-- 1 rafael 0xl337 0B Nov 4 00:52 archivo3.log
> [ rafael ] ~ $
El comando touch archivo{1..3}.log, me ha creado los tres archivos y los ha enumerado; {1..3}, de igual forma podemos usarlo para ahorrarnos tiempo al crear los archivos de logs y su respaldo por así decirlo:
> [ rafael ] ~ $ touch logs.txt{,.bak}
> [ rafael ] ~ $ ls -lt
total 0
-rw-r--r-- 1 rafael 0xl337 0B Nov 4 01:02 logs.txt
-rw-r--r-- 1 rafael 0xl337 0B Nov 4 01:02 logs.txt.bak
> [ rafael ] ~ $
Otra de las utilidades que le eh encontrado es para cambiar de nombre o extensión a los archivos y así cómo copiarlos:
> [ rafael ] ~ $ touch logs.texto
> [ rafael ] ~ $ ls
logs.texto
> [ rafael ] ~ $ mv logs.{texto,txt}
> [ rafael ] ~ $ ls
logs.txt
> [ rafael ] ~ $ cp logs.txt{,.texto}
> [ rafael ] ~ $ ls
logs.txt logs.txt.texto
> [ rafael ] ~ $
De esta forma nos ahorramos tiempo en cp/mv logs.txt logs.texto. Existen varias formas para sacarle provecho:
> [ rafael ] ~/ $ echo bucio.{mx,com.mx} | xargs -n 1 host -v
Trying "bucio.mx"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5972
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;bucio.mx. IN A
;; ANSWER SECTION:
bucio.mx. 289 IN A 104.28.29.99
bucio.mx. 289 IN A 104.28.28.99
Received 58 bytes from 8.8.8.8#53 in 48 ms
Trying "bucio.mx"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5653
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;bucio.mx. IN AAAA
;; AUTHORITY SECTION:
bucio.mx. 1799 IN SOA jean.ns.cloudflare.com. dns.cloudflare.com. 2016419193 10000 2400 604800 3600
Received 88 bytes from 8.8.8.8#53 in 63 ms
Trying "bucio.mx"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32175
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;bucio.mx. IN MX
;; ANSWER SECTION:
bucio.mx. 231 IN MX 10 aspmx2.googlemail.com.
bucio.mx. 231 IN MX 5 alt2.aspmx.l.google.com.
bucio.mx. 231 IN MX 1 aspmx.l.google.com.
Received 115 bytes from 8.8.8.8#53 in 49 ms
Trying "bucio.com.mx"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59119
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;bucio.com.mx. IN A
;; ANSWER SECTION:
bucio.com.mx. 172 IN A 104.28.21.102
bucio.com.mx. 172 IN A 104.28.20.102
Received 62 bytes from 8.8.8.8#53 in 47 ms
Trying "bucio.com.mx"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54856
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;bucio.com.mx. IN AAAA
;; ANSWER SECTION:
bucio.com.mx. 299 IN AAAA 2400:cb00:2048:1::681c:1466
bucio.com.mx. 299 IN AAAA 2400:cb00:2048:1::681c:1566
Received 86 bytes from 8.8.8.8#53 in 98 ms
Trying "bucio.com.mx"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22122
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;bucio.com.mx. IN MX
;; ANSWER SECTION:
bucio.com.mx. 299 IN MX 5 alt2.aspmx.l.google.com.
bucio.com.mx. 299 IN MX 10 aspmx2.googlemail.com.
bucio.com.mx. 299 IN MX 1 aspmx.l.google.com.
Received 119 bytes from 8.8.8.8#53 in 63 ms
> [ rafael ] ~ $
(y)
