redirect tcsh

redirect - Que hacer>! y>> hacer en tcsh



(2)

En redirección de bash normal > redireccionando salida estándar a un archivo, sobrescribiendo cuando existe y >> redireccionando salida estándar a un archivo, añadiéndola cuando existe.

En un script tcsh (c shell) encontré los operadores >! >>! siendo utilizado. ¿Qué hacen estos operadores? tcsh también tiene los operadores > y >> , ¿cuál es la diferencia?


El signo de admiración suprime el cheque para el tipo de archivo que se escribe en ciertos casos.

Para citar la página man de tcsh:

Si se configura la variable de shell noclobber, entonces el archivo no debe existir o ser un archivo especial de caracteres (por ejemplo, un terminal o ''/ dev / null'') o se produce un error. Esto ayuda a prevenir la destrucción accidental de archivos. En este caso, el ''!'' formularios pueden ser utilizados para suprimir esta verificación.


En tcsh redirección el! symbol significa sobrescribir el archivo existente incluso si noclobber se configuró noclobber .

En otras palabras, si no se establece noclobber, entonces:

  • cmd > file escribirá stdout en el archivo si el archivo no existe
  • cmd > file fallará si el archivo existe
  • cmd >> file anexará stdout al archivo si el archivo existe
  • cmd >> file fallará si el archivo no existe
  • cmd >! file cmd >! file escribirá stdout en el archivo , sobrescribiendo cualquier archivo existente
  • cmd >>! file cmd >>! file agregará stdout al archivo , creando el archivo si no existe

Si no se establece noclobber entonces el! no tiene efecto:

  • cmd > file escribirá stdout en el archivo , sobrescribiendo cualquier archivo existente
  • cmd >> file anexará stdout al archivo
  • cmd >! file cmd >! file escribirá stdout en el archivo , sobrescribiendo cualquier archivo existente
  • cmd >>! file cmd >>! file agregará stdout al archivo