(2 risposte)
Chiuso 6 anni fa.
-
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
-
Perché il seguente reindirizzamento svuota il file:
$ less bk > bk
awk
funziona anche in modo simile aless
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.