GNU/Linux >> Belajar Linux >  >> Linux

Buat File Virtual yang Sebenarnya Adalah Perintah?

Apakah ada cara untuk membuat file virtual, sehingga membaca dari file benar-benar membaca dari stdout dari sebuah perintah; menulis ke file sebenarnya menulis ke stdin dari sebuah perintah?

Sejauh ini saya telah mengambil ini dengan inotifywait pada file, yang memanggil perintah saat file dimodifikasi, mengambil input dari file dan menulis kembali ke sana.

Saya tidak suka inotifywait harus terus-menerus di-restart (dan saya harus memastikan bahwa itu selalu berjalan). Saya hanya menggunakan file ini mungkin dua kali seminggu.

Jawaban yang Diterima:

Anda mungkin mencari pipa bernama.

mkfifo f
{
  echo 'V cebqhpr bhgchg.'
  sleep 2
  echo 'Urer vf zber bhgchg.'
} >f
rot13 < f

Menulis ke pipa tidak memulai program mendengarkan. Jika Anda ingin memproses input dalam satu lingkaran, Anda harus tetap menjalankan program mendengarkan.

while true; do rot13 <f >decoded-output-$(date +%s.%N); done

Perhatikan bahwa semua data yang ditulis ke pipa digabungkan, meskipun ada beberapa proses penulisan. Jika beberapa proses membaca, hanya satu yang mendapatkan data. Jadi pipa mungkin tidak cocok untuk situasi bersamaan.

Soket bernama dapat menangani koneksi bersamaan, tetapi ini di luar kemampuan skrip shell dasar.

Pada skala yang paling kompleks adalah sistem file khusus, yang memungkinkan Anda mendesain dan memasang sistem file di mana setiap open , write , dll., memicu fungsi dalam suatu program. Investasi minimum adalah puluhan baris pengkodean nontrivial, misalnya dengan Python. Jika Anda hanya ingin menjalankan perintah saat membaca file, Anda dapat menggunakan scriptfs atau fuseflt.


Linux
  1. 4 Cara Membuat File Teks di Terminal Linux

  2. Linux ln perintah

  3. Buat file dengan menggunakan baris perintah di Linux

  1. Cara membuat file sparse di Linux menggunakan perintah 'dd'

  2. Satu perintah untuk membuat direktori dan file di dalamnya perintah linux

  3. Menggabungkan file ke file virtual di Linux

  1. 8 perintah menyeramkan yang menghantui terminal

  2. Bagaimana Memastikan Bahwa Direktori Atau File Sebenarnya Dihapus?

  3. Gunakan Perintah fallocate untuk Membuat File dengan Ukuran Tertentu di Linux