GNU/Linux >> Belajar Linux >  >> Linux

Apakah Utilitas Linux Cerdas Saat Menjalankan Perintah Pipa?

Saya baru saja menjalankan beberapa perintah di terminal dan saya mulai bertanya-tanya, apakah Unix/Linux mengambil jalan pintas saat menjalankan perintah pipa?

Misalnya, katakanlah saya memiliki file dengan satu juta baris, 10 baris pertama berisi hello world . Jika Anda menjalankan perintah grep "hello world" file | head apakah perintah pertama berhenti segera setelah menemukan 10 baris, atau terus mencari seluruh file terlebih dahulu?

Jawaban yang Diterima:

semacam. Shell tidak tahu apa yang akan dilakukan oleh perintah yang Anda jalankan, ia hanya menghubungkan output dari satu ke input yang lain.

Jika grep menemukan lebih dari 10 baris yang mengatakan "hello world" lalu head akan memiliki semua 10 baris yang diinginkan, dan tutup pipa. Ini akan menyebabkan grep untuk dibunuh dengan SIGPIPE, sehingga tidak perlu melanjutkan pemindaian file yang sangat besar.


Linux
  1. 10+ perintah Linux VI dengan contoh

  2. Linux – Bagaimana Cara Memeriksa Informasi Struktur Direktori File Unix/linux?

  3. Tidak Dapat Menghapus File, Bahkan Saat Menjalankan Sebagai Root?

  1. Temukan File dengan Perintah Temukan dan Temukan di Linux

  2. Semua Perintah Kompres/Dekompresi Linux

  3. Apakah deskriptor file dibagikan saat melakukan fork()?

  1. Jalankan Perintah Shell dari Program yang berjalan di WINE

  2. Bagaimana cara menghindari pesan peringatan 'adalah file yang sama' saat menggunakan cp di Linux?

  3. Di Linux, kapan uptime mulai dihitung?