sudo echo / cat 發生 permission denied

下面是失敗的例子:
$ echo "deb http://ppa.launchpad.net/gwibber-daily/ppa/ubuntu $(lsb_release -sc) main" >> /etc/apt/sources.list
bash: /etc/apt/sources.list: Permission denied

這篇所言, 問題出在 ">>" 仍是原本 bash 執行的, 不具 root 權限。解法是改對 tee 下 sudo, 別透過 ">>":

echo "deb http://ppa.launchpad.net/gwibber-daily/ppa/ubuntu $(lsb_release -sc) main" | sudo tee -a  /etc/apt/sources.list

留言

  1. Shorter version:
    sudo sh -c "echo deb XXX $(lsb_release -sc) main > /etc/apt/sources.list"

    回覆刪除
  2. 我也有看到這種寫法, 問題在於若 echo 後要把顯示字串括起來的話, 要嘛改用單引號, 或是用反斜線加雙引號。所以我覺得用 tee 比較單純, 算個人喜好吧

    回覆刪除

張貼留言

這個網誌中的熱門文章

(C/C++ ) 如何在 Linux 上使用自行編譯的第三方函式庫

熟悉系統工具好處多多

virtualbox 使用 USB 裝置