Как перенаправить вывод 'обновления способного файла' в файл?

У меня есть функция 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}"
}

Последняя строка звонит __update_system функция и каналы ее вывод к tee, который в свою очередь должен отобразить вывод на терминале и добавить его в файл, так, чтобы я мог рассмотреть его позже, если что-то пошло не так, как надо.

Одна из команд, выполняемых __update_system :

$ apt-file update

Это, кажется, выполняется, но его вывод не зарегистрирован файл. Все другие команды (включая aptitude update) зарегистрированы.

Я пытался понять путем выполнения этой команды в оболочке:

$ apt-file update >/tmp/log

Снова, apt-file update кажется, выполняется, но вывод не зарегистрирован как /tmp/log пусто.

Я думал, что, возможно, вывод отправляется на стандартной погрешности, таким образом, я попробовал:

$ apt-file update >/tmp/log 2>&1

Но я получил тот же результат, пустой файл.

Я попробовал в ударе, который также дал мне пустой файл.


Вот некоторые детали о моей системе:

$ uname -a
Linux ubuntu 4.4.0-135-generic #161-Ubuntu SMP Mon Aug 27 10:45:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

О zsh:

$ zsh --version
zsh 5.5.1-dev-0 (x86_64-pc-linux-gnu)

Об ударе:

$ bash --version
GNU bash, version 4.4.0(1)-release (x86_64-unknown-linux-gnu)

О нас apt-file:

$ aptitude show apt-file
Package: apt-file
State: installed
Automatically installed: no
Version: 2.5.5ubuntu1
Priority: optional
Section: universe/admin
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all
Uncompressed Size: 92,2 k
Depends: perl, curl, libconfig-file-perl, libapt-pkg-perl, liblist-moreutils-perl, libregexp-assemble-perl,
         libfile-temp-perl
Suggests: openssh-client, sudo
Description: search for files within Debian packages (command-line interface)
 apt-file is a command line tool for searching files contained in packages for the APT packaging system. You can search
 in which package a file is included or list the contents of a package without installing or fetching it.

Как перенаправить вывод apt-file update в файл?

5
задан 13 September 2018 в 05:33

1 ответ

  • apt-file сценарий жемчуга.
  • Это использует diffindex-загрузку. Это - другой сценарий жемчуга.
  • Тот пишет в /dev/tty а не к stdout (различие объяснено на этом, ТАК ответьте),
  • Таким образом... это зарегистрирует вывод к logfile.log

    script -c "apt-file update" logfile.log
    
8
ответ дан 23 November 2019 в 08:58

Другие вопросы по тегам:

Похожие вопросы: