小编use*_*271的帖子

如何将`apt-file update`的输出重定向到文件中?

我有一个 zsh 函数来更新我的系统(.deb包、pip包、texlive 包,...)。

它看起来像这样:

up() {
  emulate -LR zsh
  [[ -d "${HOME}/log" ]] || mkdir "${HOME}/log"
  LOGFILE="${HOME}/log/update_system.log"
  __update_system 2>&1 | tee -a "${LOGFILE}"
}
Run Code Online (Sandbox Code Playgroud)

最后一行调用该__update_system函数并将其输出通过管道传送到tee,后者应在终端上显示输出,并将其附加到文件中,以便我以后在出现问题时可以查看它。

执行的命令之一__update_system是:

$ apt-file update
Run Code Online (Sandbox Code Playgroud)

它似乎被执行了,但它的输出没有记录在文件中。记录所有其他命令(包括aptitude update)。

我试图通过在 shell 中执行这个命令来理解:

$ apt-file update >/tmp/log
Run Code Online (Sandbox Code Playgroud)

同样,apt-file update似乎已执行,但输出未记录为/tmp/log空。

我想也许输出是在标准错误上发送的,所以我试过:

$ apt-file update >/tmp/log 2>&1
Run Code Online (Sandbox Code Playgroud)

但我得到了相同的结果,一个空文件。

我在 bash 中尝试过,它也给了我一个空文件。


以下是有关我的系统的一些详细信息:

$ uname -a
Linux ubuntu 4.4.0-135-generic #161-Ubuntu SMP Mon Aug 27 10:45:01 …
Run Code Online (Sandbox Code Playgroud)

updates package-management command-line apt

5
推荐指数
1
解决办法
1185
查看次数

标签 统计

apt ×1

command-line ×1

package-management ×1

updates ×1