/ / Qué hace> | hacer en bash? - Bash

Qué hace> | hacer en bash? - Bash

En este articulo, Cómo crear un archivo de parche para un RPM, hay este comando:

diff -ru base-1.4.4-orig base-1.4.4 >| $HOME/rpmbuild/SOURCES/base-1.4.4-f12.patch

Dado que la salida se escribe en un archivo, el operador de redirección simple > funciona bien para mí

¿Este operador significa redirigir a una tubería? Si es así, ¿cómo es diferente a un redireccionamiento a una tubería a un archivo o simplemente a un proceso?

Respuestas

6 para la respuesta № 1

Al ejecutar el comando

set -o noclobber

o el equivalente

set -C

puede hacer que bash se niegue a escribir en archivos existentes al redirigir la salida.

Utilizando >| más bien que > anula esa configuración.

Referencias

O corre info bash (suponiendo que esté instalado en su sistema) y busque >|:

s>|

(Si está familiarizado con csh y / o tcsh, bash "s >| (mayor que la barra vertical) es similar a csh "s >! (mayor que el signo de exclamación).


2 para la respuesta № 2

De la página de manual de bash:

Si el operador de redirección es> |, o elredirección el operador es> y la opción noclobber del comando integrado del conjunto no está habilitado, se intenta la redirección> incluso si el archivo se llama por palabra existe