GNU/Linux >> Linux Esercitazione >  >> Linux

Ordine di reindirizzamento?

Non capisco bene come il computer legge questo comando.

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

Se ho capito, 2>&1 reindirizza semplicemente l'errore standard all'output standard.

Secondo quella logica, il comando mi legge come segue:

  1. concatena i file file1 e file2 .

  2. invia stdout da questa operazione a file.txt .

  3. invia stderr a stdout .

  4. fine?

Non sono sicuro di cosa stia facendo il computer. Secondo la mia logica, il comando dovrebbe essere

cat file1 file2 2>&1 > file.txt

ma questo non è corretto.

Risposta accettata:

Trovo più facile pensare di usare i compiti.

  • > è come =
  • & è come $

Inizi con

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

quindi il tuo primo esempio, 1> file.txt 2>&1 , fa

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

lasciandoti con

1 = file.txt
2 = file.txt

Se l'hai fatto nell'altro modo, ricomincia con

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

quindi 2>&1 > file.txt fa

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

quindi il risultato finale è

1 = file.txt
2 = /dev/tty

e hai solo reindirizzato stdout , non stderr .


Linux
  1. Linux:tutto è un file?

  2. Ordinare parte di un file?

  3. Contare le righe in un file?

  4. Scrivere su file .txt?

  5. Cos'è un file .so.2?

Comprendere i permessi dei file Linux

Bash:Scrivi su file

Comando coda di Linux

Comando touch di Linux

Editor VIM

Cos'è un file .sh?