GNU/Linux >> Tutoriales Linux >  >> Linux

¿Redirigir al mismo archivo que el archivo de origen procesado por el comando?

Esta pregunta ya tiene respuestas aquí :¿Los operadores de redirección siempre abren los descriptores de archivos en paralelo?

(2 respuestas)
Cerrado hace 6 años.
  1. La redirección no está permitida aquí. Es cat ¿no permitir? Pero, ¿no es
    la redirección independiente de cualquier comando que se ejecute con ella?

    $ cat bk > bk
    cat: bk: input file is output file
    
  2. ¿Por qué la siguiente redirección vacía el archivo:

    $ less  bk > bk
    

    awk también funciona de manera similar a less en lo que respecta a la redirección. awk es con el que realmente encontré el problema, mientras que los ejemplos anteriores no tienen sentido

En general, ¿cuáles son las formas correctas de usar la redirección?

Respuesta aceptada:

El problema es que la redirección de salida elimina el archivo antes de less incluso se inicia:

open("file", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
dup2(3, 1)                        = 1
close(3)                          = 0
execve("/usr/bin/less", ["less", "-WNS", "file"], [/* 102 vars */]) = 0

La redirección de salida normal sobrescribe el archivo. El O_TRUNC (ver man 2 open ) elimina el contenido del archivo.


Linux
  1. Cómo usar el comando Tar en Linux

  2. ¿Redireccionar el contenido de un archivo al comando "echo"?

  3. ¿Redireccionamiento de Io y el comando principal?

  4. Ejemplos esenciales del comando de archivo en Linux

  5. 9 ejemplos útiles del comando Split en Linux

Cómo usar el comando diff de Linux

Comando de fuente Bash

Cómo redirigir la salida del comando de shell

Ver el contenido de un archivo en la línea de comandos de Linux

¿Cómo usar el comando Gzip en Linux?

El comando Mover archivo de Linux:¡fácil!