GNU/Linux >> Belajar Linux >  >> Linux

Redirect Ke File Yang Sama Dengan File Sumber yang Diproses Oleh Perintah?

Pertanyaan ini sudah memiliki jawaban di sini :Apakah operator redirection selalu membuka deskriptor file secara paralel?

(2 jawaban)
Tutup 6 tahun yang lalu.
  1. Pengalihan tidak diperbolehkan di sini. Apakah cat tidak mengizinkan? Tetapi bukankah
    redirection tidak bergantung pada perintah apa pun yang dijalankan dengannya?

    $ cat bk > bk
    cat: bk: input file is output file
    
  2. Mengapa pengalihan berikut mengosongkan file:

    $ less  bk > bk
    

    awk juga bekerja dengan cara yang sama seperti less dalam hal pengalihan. awk adalah yang sebenarnya saya temukan masalahnya, sedangkan contoh di atas tidak ada artinya

Secara umum, bagaimana cara yang tepat untuk menggunakan redirect?

Jawaban yang Diterima:

Masalahnya adalah bahwa pengalihan output mematikan file sebelum less bahkan dimulai:

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

Pengalihan output normal menimpa file. O_TRUNC (lihat man 2 open ) menghapus konten file.


Linux
  1. Bagaimana cara menambahkan output ke file?

  2. Bagaimana cara mengarahkan output dari system() ke file?

  3. Bagaimana cara mengarahkan output dari perintah waktu ke file di Linux?

  1. Cara Menggunakan Perintah Tar di Linux

  2. Mengarahkan Isi File Ke Perintah "echo"?

  3. Redirect Output Dari Sebuah Perintah Dalam `time Command`?

  1. Pengalihan Io Dan Perintah Kepala?

  2. Contoh Penting dari Perintah File di Linux

  3. 9 Contoh Perintah Split yang Berguna di Linux