在焦油存档中获取特定文件的内容

  • 本文关键字:文件 获取 linux bash shell tar
  • 更新时间 :
  • 英文 :


此脚本列出了包含模式的文件的名称(tar存档)。

tar tf myarchive.tar | while read -r FILE
do
    if tar xf test.tar $FILE  -O | grep "pattern" ;then
        echo "found pattern in : $FILE"
    fi
done

我的问题是:

此功能在哪里记录,其中$ file是存档中的文件之一:

tar xf test.tar $FILE

通常在人页中记录下来,尝试运行此命令:

man tar

不幸的是,Linux并不是最佳人物页面。此操作系统中有一个在线副本的TAR Manpage:http://linux.die.net/man/1/tar,这很糟糕。但是它链接到info man命令,该命令是命令访问GNU世界中广泛使用的"信息"系统(Linux用户空间中的许多程序都来自GNU项目,例如GCC)。在线info tar的部分链接有关提取特定文件:http://www.gnu.org/software/tar/manual/manual/html_node/extracting-files.html#sec27

i也可能建议来自BSD(例如FreeBSD)或OpenGroup.org的文档。公用事业可能会有所不同,但通常行为相同。

例如,有一些来自OpenGroup的旧但好人(XCU表示 Single Unix规范的"命令和实用程序" ,版本2,1997):http://pubs.opengroup.org/onlinepubs/7908799/xcu/tar.html

tar键[文件...]

支持以下操作数:

- 密钥操作数由一个功能字母组成,然后立即进行零或更多修改字母。功能字母是以下内容之一:

X - 从存档中提取命名的文件或文件。如果命名文件匹配已写入档案中的内容的目录,则该目录已(递归)提取。如果存档中的命名文件在系统上不存在,则该文件的创建与档案中的模式相同,除非设置set-user-id和set-group-id模式,除非用户被设置具有适当的特权。如果存在文件,则除了上述所述,它们的模式不会更改。所有者,组和修改时间将恢复(如果可能的话)。如果没有给出文件操作数,则提取存档的全部内容。请注意,如果几个具有相同名称的文件在存档中,则最后一个覆盖所有早期的文件。

和充分理解命令tar xf test.tar $FILE您还应该阅读有关f选项的信息:

f - 使用第一个文件操作数(或第二个文件,如果已经指定了b)作为存档的名称,而不是依赖系统依赖的默认值。

因此,您的命令中的test.tar将由f键用作存档名称;然后,X将使用第二个参数($FILE)作为文件或目录的名称来从存档中提取。

相关内容

  • 没有找到相关文章

最新更新