你能提供一个使用 `zrun` 的例子吗?

417*_*754 1 command-line

我正在阅读 moreutils 包的手册页,但我不明白zrun.

我的手册页与die.net 的手册页几乎相同:

ZRUN(1)                                                                ZRUN(1)



NAME
       zrun - automatically uncompress arguments to command

SYNOPSIS
       zrun command file.gz [...]

DESCRIPTION
       Prefixing a shell command with "zrun" causes any compressed files that
       are arguments of the command to be transparently uncompressed to temp
       files (not pipes) and the uncompressed files fed to the command.

       This is a quick way to run a command that does not itself support
       compressed files, without manually uncompressing the files.

       The following compression types are supported: gz bz2 Z xz lzma lzo

       If zrun is linked to some name beginning with z, like zprog, and the
       link is executed, this is equivalent to executing "zrun prog".

BUGS
       Modifications to the uncompressed temporary file are not fed back into
       the input file, so using this as a quick way to make an editor support
       compressed files won't work.

AUTHOR
       Copyright 2006 by Chung-chieh Shan <ccshan@post.harvard.edu>



moreutils                         2010-04-28                           ZRUN(1)
Run Code Online (Sandbox Code Playgroud)

你能提供一个使用示例吗?

X T*_*ian 5

这是一个例子;

$ cat >afile
This is a file
line2
line3
$ cp afile bfile
$ gzip afile
$ ls -l
total 8
-rw-r--r-- 1 usera usera 48 2014-02-19 13:24 afile.gz
-rw-r--r-- 1 usera usera 27 2014-02-19 13:24 bfile
Run Code Online (Sandbox Code Playgroud)

用 grep

$ grep line *
bfile:line2
bfile:line3
Run Code Online (Sandbox Code Playgroud)

与 zrun

$ zrun grep line *
/tmp/dpQH01hY51-afile:line2
/tmp/dpQH01hY51-afile:line3
bfile:line2
bfile:line3
Run Code Online (Sandbox Code Playgroud)

您可以看到grep在压缩文件中没有看到正确的线条afile.gz。但是在使用时zrun

zrun首先解压afile.gz/tmp并执行的实际命令zrun是:

$ grep line /tmp/dpQH01hY51-afile bfile
Run Code Online (Sandbox Code Playgroud)