Bash 如何 Pipe 再透過 sudo 寫入檔案

於 Linux 的 bash shell 很常會 cat 某些資料,處理完後再寫入到某個檔案,但是常常會遇到權限不足,要怎麼做呢?

Bash 如何 Pipe 再透過 sudo 寫入檔案

主要可以使用 sudo 搭配 tee 來達成

  • tee -a # append
  • echo "example content" | sudo tee -a /tmp/filename

sudo + tee 操作範例

  1. mkdir /tmp/rootdir
  2. sudo chown root.root rootdir # 設定權限 造成無法寫入
  3. cd /tmp/rootdir
  4. touch filename
    touch: 無法觸碰(touch)'filename': 拒絕不符權限的操作
  5. echo "example content" | sudo tee -a filename
  6. cat filename # 寫入成功
    example content

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料