pacman
我在使用该实用程序捕获 的 IO 时遇到一个小问题tee
。我尝试这个命令行:
pacman -S group-1 group-2 | tee pacman.log
还有一个问题:当 pacman 查询group-1
要安装的软件包列表中的哪些软件包时,该软件包在某处消失了。如果我按Enter
(即选择“所有软件包”),则会出现它们的列表,并且 pacman 会从 中查询有关软件包的信息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
。