tar
命令是Linux系统中一个非常强大的工具,主要用于归档和压缩文件。它支持多种压缩格式,如.tar
、.gz
、.bz2
、.xz
等。本文将详细介绍如何使用tar
命令解压各种文件格式,包括常见的.tar
、.tar.gz
、.tar.bz2
、.tar.xz
等
tar -xvf file.tar
-x
:提取文件-v
:显示详细的操作过程-f
:指定要操作的文件
tar -xvf archive.tar
tar -xzvf file.tar.gz
-z
:使用gzip
进行压缩/解压
tar -xzvf archive.tar.gz
tar -xjvf file.tar.bz2
-j
:使用bzip2
进行压缩/解压
tar -xjvf archive.tar.bz2
tar -xJvf file.tar.xz
-J
:使用xz
进行压缩/解压
tar -xJvf archive.tar.xz
for file in *.tar; do tar -xvf "$file"; done
for file in *.tar.gz *.tar.bz2 *.tar.xz; do case "$file" in *.tar.gz) tar -xzvf "$file" ;; *.tar.bz2) tar -xjvf "$file" ;; *.tar.xz) tar -xJvf "$file" ;; esac done
tar -tvf file.tar
-t
:列出归档中的文件
tar -xvf file.tar -C /path/to/dir
tar -xvf archive.tar file.txt
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>1.21</version> </dependency>
package cn.juwatech.example; import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; public class TarGzExtractor { public static void extractTarGz(String tarGzFilePath, String destDirPath) throws IOException { try (InputStream fileInputStream = new FileInputStream(tarGzFilePath); InputStream gzipInputStream = new GzipCompressorInputStream(fileInputStream); TarArchiveInputStream tarInputStream = new TarArchiveInputStream(gzipInputStream)) { TarArchiveEntry entry; while ((entry = tarInputStream.getNextTarEntry()) != null) { File outputFile = new File(destDirPath, entry.getName()); if (entry.isDirectory()) { outputFile.mkdirs(); } else { File parentDir = outputFile.getParentFile(); if (!parentDir.exists()) { parentDir.mkdirs(); } try (FileOutputStream fileOutputStream = new FileOutputStream(outputFile)) { byte[] buffer = new byte[1024]; int length; while ((length = tarInputStream.read(buffer)) > 0) { fileOutputStream.write(buffer, 0, length); } } } } } } public static void main(String[] args) { try { extractTarGz("path/to/archive.tar.gz", "path/to/destination"); System.out.println("Extraction complete."); } catch (IOException e) { e.printStackTrace(); } } }
本文链接:https://blog.runxinyun.com/post/266.html 转载需授权!
留言0