GNU/Linux >> Belajar Linux >  >> Linux

Urutan Pengalihan?

Saya tidak begitu mengerti bagaimana komputer membaca perintah ini.

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

Jika saya mengerti, 2>&1 cukup arahkan Kesalahan Standar ke Output Standar.

Dengan logika itu, perintahnya berbunyi sebagai berikut:

  1. menggabungkan file file1 dan file2 .

  2. kirim stdout dari operasi ini ke file.txt .

  3. kirim stderr ke stdout .

  4. berakhir?

Saya tidak yakin apa yang dilakukan komputer. Menurut logika saya, perintahnya seharusnya

cat file1 file2 2>&1 > file.txt

tapi ini tidak benar.

Jawaban yang Diterima:

Saya merasa lebih mudah untuk memikirkan penggunaan tugas.

  • > seperti =
  • & seperti $

Anda memulai dengan

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

lalu contoh pertama Anda, 1> file.txt 2>&1 , apakah

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

meninggalkanmu dengan

1 = file.txt
2 = file.txt

Jika Anda melakukannya dengan cara lain, sekali lagi Anda mulai dengan

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

lalu 2>&1 > file.txt tidak

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

jadi hasil akhirnya adalah

1 = file.txt
2 = /dev/tty

dan Anda hanya mengalihkan stdout , bukan stderr .


Linux
  1. Linux – Semuanya Adalah File?

  2. Hitung Baris Dalam File?

  3. File Cat Dalam Urutan Tertentu Berdasarkan Jumlah Dalam Nama File?

  1. Tulis ke file .txt?

  2. Apa itu file .so.2?

  3. cp -L vs cp -H

  1. Memfilter tcpdump:Membuat keteraturan dari kekacauan

  2. Urutkan Bagian Dari File?

  3. C fopen vs terbuka