cmd1|cmd2 Pipe; toma la salida estándar de cmd1 y la envía a la entrada estándar
de cmd2.
>fichero Redirige la salida estándar del programa al fichero.
<fichero Redirige el contenido de fichero a la entrada estándar del programa.
>>fichero Redirige la salida estándar del programa al fichero. Añade
esta a fichero si éste ya existe.
>|fichero Redirige la salida estándar del programa al fichero. Sobrescribe a
éste incluso si la opción noclobber¹ está activada.
<>fichero Usa a fichero tanto para la entrada estándar como para la salida
estándar.
n<>fichero Usa a fichero tanto para la entrada como para la salida del descriptor
de fichero n.
<<etiqueta Here document².
<<<texto Here string³.
n>fichero Envía el valor del descriptor de fichero n al fichero.
n<fichero Obtiene el valor del descriptor de fichero n del fichero.
n>>fichero Envía el valor del descriptor de fichero n al fichero. Añade al final
del fichero si éste existe.
n>|fichero Envía el valor del descriptor de fichero n al fichero. Sobrescribe a
éste incluso si la opción noclobber¹ está activada.
n>& Enlaza la salida estándar en el descriptor de fichero n.
n<& Enlaza la entrada estándar en el descriptor de fichero n.
n>&m Enlaza el descriptor de salida m en el descriptor de fichero n.
n<&m Enlaza el descriptor de entrada m en el descriptor de fichero n.
&>fichero Redirige la salida estándar y la salida de error estándar al fichero.
<&- Cierra la entrada estándar.
>&- Cierra la salida estándar.
n>&- Cierra el descriptor de salida n.
n<&- Cierra el descriptor de entrada n.
¹ noclobber
Esta opción de Bash sirve para evitar sobreescribir un fichero con el operador >
, de este modo, si el fichero al que dirigimos la salida existe, el shell produce un error.
Por defecto no está activada, lo hacemos del siguiente modo:
set -o noclobber
² here document
El operador <<etiqueta
fuerza a que la entrada a un comando sea la stdin hasta encontrar etiqueta
. Este texto que va a encontrar etiqueta
es lo que se llama here document
.
En el siguiente ejemplo, cat
recibe texto hasta que encuentra una línea con un sólo punto, y guarda ése texto en el fichero fichero.txt
de este modo:
$ cat >> fichero.txt << .
> Este es un ejemplo.
> Este es otro
> Hasta luego.
> .
³ here string
Es una variante de los here documents. Se llevan a cabo usando el operador <<<texto
, y simplemente envían texto a la entrada estándar del comando.
En el siguiente ejemplo, se añade una línea al principio del fichero original.txt
, guardándolo luego como modificado.txt
:
$ titulo="linea a agregar como titulo"
$ cat - original.txt <<<$titulo > modificado.txt
El guión como argumento de cat
indica que ahí va lo que reciba por la entrada estándar (en este caso el here string).
El here string (al igual que el here documents) puede contener variables, las cuales se expanden por su valor antes de pasar el here document al comando.
VER
bash, bash-builtins