GNU/Linux >> Belajar Linux >  >> Linux

File Pseudo Untuk Data Sementara?

Saya sering ingin memasukkan data string yang relatif pendek (bisa berupa beberapa baris) ke program baris perintah yang hanya menerima input dari file (mis. wdiff) secara berulang. Tentu saya dapat membuat satu atau lebih file sementara, simpan string di sana dan jalankan perintah dengan nama file sebagai parameter. Tetapi bagi saya tampaknya prosedur ini akan sangat tidak efisien jika data benar-benar ditulis ke disk dan juga dapat merusak disk lebih dari yang diperlukan jika saya mengulangi prosedur ini berkali-kali, mis. jika saya ingin memberi makan satu baris file teks panjang ke wdiff. Apakah ada cara yang disarankan untuk menghindari ini, katakanlah dengan menggunakan file semu seperti pipa untuk menyimpan data sementara tanpa benar-benar menulisnya ke disk (atau menulisnya hanya jika melebihi panjang kritis). Perhatikan bahwa wdiff membutuhkan dua argumen dan, sejauh yang saya pahami, tidak mungkin memberi makan data dengan melakukan sesuatu seperti wdiff <"text" .

Jawaban yang Diterima:

Gunakan pipa bernama. Sebagai ilustrasi:

mkfifo fifo
echo -e "hello worldnnext linenline 3" > fifo

-e memberitahu echo untuk menafsirkan dengan benar pelarian baris baru (n ). Ini akan memblokir, yaitu, shell Anda akan hang sampai sesuatu membaca data dari pipa.

Buka shell lain di suatu tempat dan di direktori yang sama:

cat fifo

Anda akan membaca gema, yang akan melepaskan shell lainnya. Meskipun pipa ada sebagai node file pada disk, data yang melewatinya tidak; semuanya terjadi dalam ingatan. Anda dapat latar belakang (& ) gemanya.

Pipa memiliki buffer 64k (di linux) dan, seperti soket, akan memblokir penulis saat penuh, sehingga Anda tidak akan kehilangan data selama Anda tidak membunuh penulis sebelum waktunya.


Linux
  1. MySQL – Mengonversi ke Data Per Tabel untuk InnoDB

  2. 5 Perangkat Lunak Pencadangan Data Teratas untuk Linux

  3. Script Untuk Memantau Folder Untuk File Baru?

  1. Lingkungan Seperti Shell Untuk Pemrosesan Biner?

  2. Tunggu Beberapa File Selesai Diunduh?

  3. Menyembunyikan Data Dalam Sistem File?

  1. Cari File Dengan Gui?

  2. File .o vs file .a

  3. Max membuka file untuk proses kerja