Tar从大型tar包提取单个文件
时间:2020-01-09 10:42:14 来源:igfitidea点击:
问题描述:如何从tar包(例如images.tar)中提取单个文件或者文件列表,而不是提取整个tar包?
如何在Linux/UNIX操作系统下提取特定文件?
解决方法:GNU tar可以用于从tar包中提取单个或者多个文件。
要提取特定的存档成员,请提供其确切的成员名称作为参数,如-t选项所示。
从tar包中提取特定文件
从config.tar.gz tar包提取一个名为etc/default/sysstat的文件:
$ tar -ztvf config.tar.gz $ tar -zxvf config.tar.gz etc/default/sysstat $ tar -xvf {tar包.tar} {path/to/file}
有些人喜欢以下语法:
tar --extract --file={tar包.tar} {file}
从cbz.tar中提取一个名为css的目录:
$ tar --extract --file=cbz.tar css
基于通配符的提取
您还可以提取与特定通配符模式(通配符)匹配的文件。
例如,要从cbz.tar中提取所有以pic开头的文件,无论其目录前缀如何,您都可以执行:
$ tar -xf cbz.tar --wildcards --no-anchored 'pic*'
要提取所有php文件,请执行:
$ tar -xf cbz.tar --wildcards --no-anchored '*.php'
其中:
- -x:指示tar提取文件。
- -f:指定文件名/压缩包名称。
- -v:详细(提取文件时显示进度)。
- -j:通过bzip2过滤归档文件,用于解压缩.bz2文件。
- -z:通过gzip过滤归档文件,用于解压缩.gz文件。
- " wildcards":指示tar将命令行参数视为通配模式。
no-anchored
:通知它该模式适用于任何/分隔符后面的成员名称。