(2 risposte)
Chiuso 6 anni fa.
-  Il reindirizzamento non è consentito qui. È catnon permettendo? Ma il
 reindirizzamento non è indipendente da qualsiasi comando in esecuzione con esso?$ cat bk > bk cat: bk: input file is output file
-  Perché il seguente reindirizzamento svuota il file: $ less bk > bkawkfunziona anche in modo simile alessper 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.