Saat Anda mencoba mengubah file tanpa izin menulis, Anda akan mendapatkan pesan kesalahan:
> touch /tmp/foo && sudo chown root /tmp/foo
> echo test > /tmp/foo
zsh: permission denied: /tmp/foo
Sudoing tidak membantu, karena menjalankan perintah sebagai root, tetapi shell menangani pengalihan stdout dan tetap membuka file seperti Anda:
> sudo echo test > /tmp/foo
zsh: permission denied: /tmp/foo
Apakah ada cara mudah untuk mengarahkan stdout ke file yang Anda tidak memiliki izin untuk menulis, selain membuka shell sebagai root dan memanipulasi file seperti itu?
> sudo su
# echo test > /tmp/foo
Jawaban yang Diterima:
Ya, menggunakan tee
. Jadi echo test > /tmp/foo
menjadi
echo test | sudo tee /tmp/foo
Anda juga dapat menambahkan (>>
)
echo test | sudo tee -a /tmp/foo