GNU/Linux >> Znalost Linux >  >> Linux

Pořadí přesměrování?

Úplně nerozumím tomu, jak počítač čte tento příkaz.

cat file1 file2 1> file.txt 2>&1

Pokud rozumím, 2>&1 jednoduše přesměrujte standardní chybu na standardní výstup.

Podle této logiky mi příkaz zní takto:

  1. zřetězit soubory file1 a file2 .

  2. odeslat stdout z této operace do file.txt .

  3. odeslat stderr na stdout .

  4. konec?

Nejsem si jistý, co počítač dělá. Podle mé logiky by příkaz měl být

cat file1 file2 2>&1 > file.txt

ale to není správné.

Přijatá odpověď:

Připadá mi jednodušší vymýšlet používání úkolů.

  • > je jako =
  • & je jako $

Začněte s

1 = /dev/tty
2 = /dev/tty

pak váš první příklad, 1> file.txt 2>&1 , dělá

1 = file.txt
2 = $1           # and currently $1 = file.txt

opustí vás

1 = file.txt
2 = file.txt

Pokud jste to udělali jinak, znovu začnete s

1 = /dev/tty
2 = /dev/tty

pak 2>&1 > file.txt ano

2 = $1           # and currently $1 = /dev/tty
1 = file.txt

takže konečný výsledek je

1 = file.txt
2 = /dev/tty

a vy jste pouze přesměrovali stdout , nikoli stderr .


Linux
  1. Filtrování tcpdump:Vytváření řádu z chaosu

  2. Linux – všechno je soubor?

  3. Soubory Cat ve specifickém pořadí na základě čísla v názvu souboru?

  1. C fopen vs open

  2. Zapsat do souboru .txt?

  3. Co je soubor .so.2?

  1. Třídit část souboru?

  2. Co je soubor .so?

  3. Změňte pořadí řádků v souboru