GNU/Linux >> Belajar Linux >  >> Linux

Mengarahkan Stdout Ke File yang Anda Tidak Memiliki Izin Menulis?

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

Linux
  1. Cara memperbaiki Kesalahan Anda tidak memiliki izin untuk mengakses…

  2. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  3. Mengarahkan Isi File Ke Perintah "echo"?

  1. Gema ke stdout dan stderr

  2. Kapan saya harus menggunakan /dev/shm/ dan kapan saya harus menggunakan /tmp/?

  3. Apakah pipa harus menulis file sementara?

  1. Apakah>&- Lebih Efisien Daripada>/dev/null?

  2. Bagaimana cara mengatur izin file tertentu saat mengarahkan keluaran?

  3. Haruskah situs web berada di /var/ atau /usr/ sesuai dengan penggunaan yang disarankan?