Linux tar 提取文件命令
您需要使用 tar 命令从存档中提取文件或创建存档(也称为 tarball)。tarball 或存档只不过是一个包含各种单独文件的文件。它还包含允许您通过一个或多个提取程序(例如 tar 命令)将文件恢复到其原始形式的信息。
提取或解压 TarBall 文件
要解压或提取 tar 文件,请输入:
$ tar -xvf file.tar
要节省磁盘空间和网络带宽,所有文件都使用压缩程序(如 gzip 或 bzip2)保存。要提取/解压 .tar.gz (gzip) 文件,请输入(注意-z选项):
$ tar -xzvf file.tar.gz
要提取/解压 .tar.bz2 (bzip2) 文件,请输入(注意-j选项):
$ tar -xjvf file.tar.bz2
其中,
- -x:提取 tar 包。
- -v:提取文件时详细输出或显示进度。
- -f:指定档案或 tarball 文件名。
- -j:解压并提取由 bzip2 程序(tar.bz2 扩展名)创建的压缩档案的内容。
- -z:解压并提取由 gzip 程序(tar.gz 扩展名)创建的压缩档案的内容。
$ tar -xvf file.tar.gz
$ tar -xvf file.tar.bz2
$ tar -xvf file.tar
如何提取名为 foo.txt 的单个文件?
要提取名为 foo.txt 的单个文件,请输入:
您也可以指定路径,例如 etc/resolv.conf,请输入:
$ tar -xvf file.tar foo.txt
$ tar -xzvf file.tar.gz foo.txt
$ tar -xjvf file.tar.bz2 foo.txt
$ tar -xvf file.tar etc/resolv.conf
$ tar -xzvf file.tar.gz etc/resolv.conf
$ tar -xjvf file.tar.bz2 etc/resolv.conf
如何提取名为 etc 的单个目录?
要提取名为 etc 的单个目录,请输入:
示例输出:
$ tar -xvf file.tar etc
$ tar -xzvf file.tar.gz etc
$ tar -xjvf file.tar.bz2 etc
etc/ etc/pulse/ etc/pulse/default.pa etc/pulse/client.conf etc/pulse/daemon.conf etc/pulse/system.pa etc/xml/ etc/xml/docbook-xml.xml.old etc/xml/xml-core.xml etc/xml/catalog etc/xml/catalog.old etc/xml/docbook-xml.xml etc/xml/rarian-compat.xml etc/xml/sgml-data.xml etc/xml/xml-core.xml.old etc/xml/sgml-data.xml.old etc/mail.rc etc/Wireless/ etc/Wireless/RT2870STA/ etc/Wireless/RT2870STA/RT2870STA.dat etc/logrotate.conf etc/compizconfig/ etc/compizconfig/config ..... ... .... etc/python/ etc/python/debian_config etc/ConsoleKit/ etc/ConsoleKit/seats.d/ etc/ConsoleKit/seats.d/00-primary.seat etc/ConsoleKit/run-session.d/ etc/ConsoleKit/run-seat.d/ etc/opt/
将文件解压到目录
是否要将文件提取到名为 /tmp/out 的目录?在使用 tar 执行任何操作之前,请尝试使用以下语法更改为 /tmp/out:
$ tar -xvf file.tar -C /tmp/out/
$ tar -zxvf foo.tar.gz -C /tmp/out/
$ cd /tmp/out/
$ ls -l
总结
我们在 Linux 上使用 tar 命令从 tarball 存档中提取文件。通过键入以下 man 命令/info 命令或 help 命令,查看 tar 命令手册页以获取更多信息。例如:
$ man tar
$ info tar
$ tar --help