想問一下
有什麼方法可以
apt download (apt list --upgradable)
Ubuntu 18.04 bionic有apt list --upgradable嗎?
$ sudo apt update
$ apt download $( apt list --upgradable 2> /dev/null | sed 's|/.*$||' | tail -n+2 )
2> /dev/null | sed 's|/.*$||' | tail -n+2
這裡是什麼意思?
| sed 's|/.*$||' <= 開始的直線表示把因出的文字轉向給下個程式處理。sed 是串流文字處理程式,後面的參數是處理方法,要它把每行的斜線和之後的說明文字全部刪掉,只保留開頭的套件名稱。
2> /dev/null <= 因為 apt list --upgradable 的輸出被轉後面的直線轉往 sed 程式了,所以 apt 會發現他自己沒有接上有互動能力的正常終端機,這時他會對錯誤輸出通道發送警告文字。 2> 表示要把錯誤輸出通道轉往後面的 /dev/null,也就是黑洞檔案,這樣你就不會在終端機上收到不必要的警告了。
| tail -n+2 => 最後這一段是把輸出經由 tail 程式處理,只取出最後的部份。參數 -n+2 表示從第二行開始取出,直到結尾。這樣第一行的「正在列出...」字樣會被拋棄,就不會被誤當作套件名稱往上層命令傳遞。