web-dev-qa-db-ja.com

「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}"
}

最後の行は__update_system関数を呼び出し、その出力をteeにパイプします。この出力は端末に出力を表示し、ファイルに追加する必要があります。違う。

__update_systemによって実行されるコマンドの1つは次のとおりです。

$ apt-file update

実行されているようですが、その出力はファイルに記録されていません。他のすべてのコマンド(aptitude updateを含む)がログに記録されます。

私はシェルでこのコマンドを実行して理解しようとしました:

$ apt-file update >/tmp/log

繰り返しますが、apt-file updateは実行されているようですが、/tmp/logが空であるため、出力は記録されません。

出力はおそらく標準エラーで送信されると思ったので、試しました:

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

しかし、私は同じ結果、空のファイルを得ました。

Bashで試してみましたが、空のファイルも生成されました。


私のシステムの詳細は次のとおりです。

$ 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について:

$ 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 <[email protected]>
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
user938271
  • apt-fileはPerlスクリプトです。
  • diffindex-download を使用します。これは別のPerlスクリプトです。
  • それはstdoutではなく/dev/ttyに書き込みます(違いはこの SO answer で説明されています)
  • Soooo ...これは、出力をlogfile.logに記録します

    script -c "apt-file update" logfile.log
    
8
Rinzwind