![Archlinuxのパックマン+ティー==不明なコンソールIO [閉じる]](https://linux33.com/image/85995/Archlinux%E3%81%AE%E3%83%91%E3%83%83%E3%82%AF%E3%83%9E%E3%83%B3%2B%E3%83%86%E3%82%A3%E3%83%BC%3D%3D%E4%B8%8D%E6%98%8E%E3%81%AA%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%ABIO%20%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
pacman
このユーティリティでキャプチャしたIOの使用には小さな問題がありますtee
。私は次のコマンドラインを試してみます:
pacman -S group-1 group-2 | tee pacman.log
もう1つの問題:pacmanがgroup-1
インストールするパッケージのリストにどのパッケージがあるかを照会すると、パッケージはどこかから消えます。私がクリックするとEnter
(たとえば、「すべてのパッケージ」を選択した場合)、パッケージリストが表示され、パックマンはパッケージに関する情報を照会しますが、以前と同様にパッケージリストは非表示になりますgroup-2
。
答え1
pacman が標準エラーに書き込む場合、指定されたパイプコマンドを使用してエラーをキャッチしません。次のように、標準エラーを標準出力に従うようにリダイレクトできます。
pacman -S group-1 group-2 2>&1 | tee pacman.log
ただし、インタラクティブなコマンドラインプログラムを使用する侵害の少ない解決策は、次のように出力をキャプチャすることです。script
、例えば、
script -c "pacman -S group-1 group-2" pacman.log
Linux用。これがキャプチャされますみんなプロンプトを中断することなく、文字が端末に送信されます。
特定のプログラムの特定のソリューションを見つけることができます。例えば、pacman
マニュアルには便利なオプションがあると記載されています。
-p, --print
実際の操作(同期、削除、またはアップグレード)を実行せずに宛先のみを印刷します。
--print-format
ターゲットの表示方法を指定するために使用されます。デフォルトの書式文字列はであり"%l"
、URLは、-S
ファイル名は、およびで表されます。-U
pkgname-pkgverそして-R
。