Saya menggunakan | sudo tee FILENAME
untuk dapat menulis atau menambahkan file yang memerlukan izin pengguna super cukup sering.
Meskipun saya mengerti mengapa ini membantu dalam beberapa situasi, yang tee
juga mengirimkan inputnya ke STDOUT lagi, saya tidak pernah benar-benar menggunakan bagian itu tee
untuk sesuatu yang berguna. Dalam kebanyakan situasi, fitur ini hanya menyebabkan layar saya diisi dengan jitter yang tidak diinginkan, jika saya tidak melakukan langkah ekstra dan secara manual membungkamnya tee 1> /dev/null
.
Pertanyaan saya: Apakah ada perintah diseluruh, yang melakukan hal yang persis sama tee
, tetapi apakah secara default tidak menghasilkan apa-apa untuk STDOUT?
linux
command-line
posix
tee
aef
sumber
sumber
tee
dengancat >filename
, apakah Anda mendapatkan hasil yang Anda inginkan?cat
tidak menulis ke file dengan sendirinya. Dan>
operator tidak berfungsi karena file tidak dapat ditulisi oleh pengguna saya saat ini. Jadi tidak, itu tidak membantu sedikit pun. Dan tolong berhenti untuk sepenuhnya mengubah arti komentar Anda setiap 2 detik. Buat yang baru sebagai gantinya.| sudo tee FILENAME
dengan| sudo cat >filename
, apakah Anda mendapatkan hasil yang Anda inginkan?>
operator menggunakan pengguna shell saat ini untuk menulis ke file. Pengguna ini belum mendapatkan izin yang diperlukan.cat
sama sekali tidak berguna untuk itu.Jawaban:
Pilihan lain yang menghindari mengirim balik barang-barang itu
/dev/zero
adalahsumber
oflag=append conv=notrunc
opsi tambahan yang digunakandd
untuk menambahkan.The
dd
solusi masih mencetak sampah ke stdout:Itu bisa dihindari menggunakan
status
opsi:Kemungkinan lain yang menarik (untuk Linux):
Untuk menyalin input TTY ke file, saya sering melakukan ini:
Sayang sekali tee tidak memiliki opsi untuk menekan stdout.
sumber
Anda bisa menggunakan skrip. Yaitu memasukkan sesuatu seperti ini di yaitu
$HOME/bin/stee
,0tee
atau serupa:Buat itu bisa dieksekusi:
Sekarang lakukan yaitu:
sumber
Anda dapat membungkus seluruh perintah Anda menjadi sudo, jadi shell itu sendiri, serta pengalihan, dilakukan sebagai
root
:sumber
Tidak ada program langsung untuk melakukan itu (ini hanya satu-satunya waktu yang akan berguna), tetapi Anda dapat dengan mudah menulis sendiri. Jika Anda tidak ingin program Anda juga bisa menulis sebuah shell script sederhana yang melakukan hal yang sama:
cat > $1
. Ini berbeda dengan meletakkannya sejajar (seperti yang disarankan serbuk kayu) karena sudo akan berlaku untuk seluruh skrip, termasuk pengalihan.sumber
Saya tahu sedikit terlambat, tetapi apa yang saya lakukan dalam kasus seperti itu (ketika stdout 'flat' tetapi juga file sementara diperlukan) adalah:
sumber
/dev/null
, dan tidak membuat perintah lebih pendek. Apa keuntungan menggunakan ini daripada metode yang asli?