GNU/Linux >> Belajar Linux >  >> Linux

Alternatif untuk perintah tee tanpa STDOUT

Opsi lain yang menghindari menyalurkan barang kembali dan kemudian ke /dev/zero adalah

sudo command | sudo dd of=FILENAME

dd solusi masih mencetak sampah ke stderr:

$ ls | sudo dd of=FILENAME
0+1 records in
0+1 records out
459 bytes (459 B) copied, 8.2492e-05 s, 5.6 MB/s

Itu bisa dihindari dengan menggunakan status opsi:

command | sudo dd status=none of=FILENAME

Kemungkinan lain yang menarik (untuk Linux):

command | sudo cp /dev/stdin FILENAME

Untuk menyalin masukan TTY ke dalam file, saya sering melakukan ini:

sudo cp /dev/tty FILENAME

Sayang sekali tee tidak memiliki opsi untuk menekan stdout.


Anda bisa menggunakan skrip. Yaitu. letakkan sesuatu seperti ini di yaitu $HOME/bin/stee , 0tee atau serupa:

#!/bin/bash

argv=
while [[ "$1" =~ ^- ]]; do
    argv+=" $1"
    shift
done

sudo tee $argv "$1" > /dev/null

#!/bin/bash

sudo tee "[email protected]" > /dev/null

Jadikan itu dapat dieksekusi:

$ chmod 755 stee

Sekarang lakukan yaitu:

$ ls -la | stee -a /root/foo


Linux
  1. Apa yang setara dengan perintah updatedb Linux untuk Mac?

  2. Lihat titik akses nirkabel yang tersedia di terminal?

  3. Cara mengeksekusi perintah ssh dari jarak jauh perintah sudo tanpa kata sandi

  1. Pengantar perintah diff

  2. Jalankan Perintah Sudo, Menentukan Kata Sandi Pada Baris yang Sama?

  3. Bagaimana Cara Kerja Perintah Tee??

  1. Kuasai perintah Linux ls

  2. Perintah Sudo Setelah Panggilan Tidur Panjang Tanpa Meminta Kata Sandi Sudo?

  3. Ekstrak nomor seri Linux tanpa sudo