Itu karena echo
sedang dijalankan sebagai root, tetapi shell yang benar-benar melakukan pengalihan. Anda perlu menelurkan shell baru agar ini berfungsi:
sudo -- sh -c "echo test >> /etc/hosts"
Sunting:Saya belum melihat fakta bahwa >
redirect berfungsi; Saya tidak bisa menjelaskannya.
Alih-alih menjalankan gema melalui pengalihan yang akan dijalankan sebagai pengguna Anda saat ini, bukan root seperti gema yang dijalankan dalam contoh Anda, gunakan tee seperti yang disarankan Steve Buzonas
echo 'test' | sudo tee -a /etc/hosts
Sudo sekarang diterapkan ke perintah tee. '-a' ditambahkan ke file
Ini juga akan menampilkan tee ke output standar. Jika Anda tidak ingin melihat 'tes' di terminal Anda, tambahkan juga:> /dev/null
ke akhir baris itu.
Meniru tampilan ekstra
Bagaimana cara mengganti nama file secara massal dengan penyandian yang tidak valid atau mengganti karakter yang disandikan yang tidak valid secara massal?