於 Linux 的 bash shell 很常會 cat 某些資料,處理完後再寫入到某個檔案,但是常常會遇到權限不足,要怎麼做呢?
Bash 如何 Pipe 再透過 sudo 寫入檔案
主要可以使用 sudo 搭配 tee 來達成
- tee -a # append
- echo "example content" | sudo tee -a /tmp/filename
sudo + tee 操作範例
- mkdir /tmp/rootdir
- sudo chown root.root rootdir # 設定權限 造成無法寫入
- cd /tmp/rootdir
- touch filename
touch: 無法觸碰(touch)'filename': 拒絕不符權限的操作 - echo "example content" | sudo tee -a filename
- cat filename # 寫入成功
example content