Tato otázka zde již obsahuje odpovědi :Otevírají operátory přesměrování vždy popisovače souborů paralelně?
(2 odpovědi)
Uzavřeno před 6 lety.
Linux
(2 odpovědi)
Uzavřeno před 6 lety.
-
Přesměrování zde není povoleno. Je
cat
nedovolit? Není ale
přesměrování nezávislé na jakémkoli příkazu, který s ním běží?$ cat bk > bk cat: bk: input file is output file
-
Proč následující přesměrování vyprázdní soubor:
$ less bk > bk
awk
funguje také podobným způsobem jakoless
pokud jde o přesměrování.awk
je ten, se kterým jsem ve skutečnosti našel problém, zatímco výše uvedené příklady jsou nesmyslné
Jaký je obecně správný způsob použití přesměrování?
Přijatá odpověď:
Problém je v tom, že přesměrování výstupu zabije soubor dříve, než less
je dokonce spuštěno:
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
Normální přesměrování výstupu přepíše soubor. O_TRUNC
(viz man 2 open
) odstraní obsah souboru.
Linux – nelze spustit Vm:Chyba 13:Neplatný nebo nepodporovaný spustitelný formát?
Proč unixové hlavy říkají „mínus“?