GNU/Linux >> Linux Esercitazione >  >> Linux

Reindirizzamento allo stesso file del file di origine elaborato dal comando?

Questa domanda ha già risposte qui :Gli operatori di reindirizzamento aprono sempre i descrittori di file in parallelo?

(2 risposte)
Chiuso 6 anni fa.
  1. Il reindirizzamento non è consentito qui. È cat non permettendo? Ma il
    reindirizzamento non è indipendente da qualsiasi comando in esecuzione con esso?

    $ cat bk > bk
    cat: bk: input file is output file
    
  2. Perché il seguente reindirizzamento svuota il file:

    $ less  bk > bk
    

    awk funziona anche in modo simile a less per quanto riguarda il reindirizzamento. awk è quello con cui ho effettivamente riscontrato il problema, mentre gli esempi sopra sono privi di significato

In generale, quali sono i modi corretti per utilizzare il reindirizzamento?

Risposta accettata:

Il problema è che il reindirizzamento dell'output uccide il file prima di less è anche avviato:

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

Il normale reindirizzamento dell'output sovrascrive il file. Il O_TRUNC (vedi man 2 open ) elimina il contenuto del file.


Linux
  1. Reindirizzamento del contenuto di un file al comando "eco"?

  2. Reindirizzare l'output di un comando in `time Command`?

  3. Io reindirizzamento e il comando principale?

  4. Esempi essenziali del comando file in Linux

  5. 9 esempi utili del comando Split in Linux

Come usare il comando diff di Linux

Comando sorgente Bash

Come reindirizzare l'output del comando della shell

Visualizza il contenuto di un file nella riga di comando di Linux

Come utilizzare il comando Gzip in Linux?

Il comando di spostamento del file di Linux:semplificato!