Acabo de ver esto escrito;
$ some-command >| /tmp/output.txt
Las tuberías verticales se utilizan en redirecciones estándar "canalizando" la salida de un comando a otro, >|
de hecho , ¿es completamente inútil ya que sería lo mismo que >
en este escenario?
bash
io-redirection
pipe
jwbensley
fuente
fuente
>|
en: stackoverflow.com/questions/818255/in-the-bash-shell-what-is-21/…Respuestas:
No es inútil: es una forma especializada del
>
operador de redireccionamiento simple (y, quizás de manera confusa, nada que ver con tuberías).bash
y la mayoría de los otros shells modernos tienen una opciónnoclobber
, que evita que la redirección sobrescriba o destruya un archivo que ya existe. Por ejemplo, sinoclobber
es verdadero y el archivo/tmp/output.txt
ya existe, entonces esto debería fallar:Sin embargo, puede anular explícitamente la configuración de
noclobber
con el>|
operador de redirección: la redirección funcionará, incluso sinoclobber
está configurada.Puede averiguar si
noclobber
está configurado en su entorno actual conset -o
.Para la nota histórica, tanto la opción "noclobber" como sus funciones de derivación provienen de
csh
(finales de los 70).ksh
lo copió (principios de los 80) pero se usó en>|
lugar de>!
. POSIX especificó laksh
sintaxis (por lo que todos los shells POSIX, incluidos bash, derivados de cenizas más nuevos utilizados como sh en algunos sistemas lo admiten). Zsh admite ambas sintaxis. No creo que se haya agregado a ninguna variante de shell Bourne, pero podría estar equivocado.fuente
sh
tienenoclobber
, desde aproximadamente mayo de 2002.