tar -xvf file.tar
-x
:提取文件-v
:显示详细的操作过程-f
:指定要操作的文件
tar -xvf archive.tar
2. 解压.tar.gz
文件
tar -xzvf file.tar.gz
-z
:使用gzip
进行压缩/解压
tar -xzvf archive.tar.gz
tar -xjvf file.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
虽然
tar
命令在Linux中非常方便,但在一些情况下,你可能需要在Java应用程序中解压.tar.gz
文件。以下是一个Java代码示例,展示如何使用java.util.zip
和Apache" data-pretit="apache" style="box-sizing: border-box; outline: 0px; margin: 0px 3px 0px 0px; padding: 0px 18px 0px 0px; overflow-wrap: break-word; cursor: pointer; background: url("../img/gitcode-key.png") right center / 14px 14px no-repeat #FFFFFF; box-shadow: none; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif; font-size: 16px; font-variant-ligatures: no-common-ligatures; text-wrap: wrap; color: #4EA1DB !important;">Apache Commons Compress库来解压文件。<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(); } } }
tar
命令是Linux系统中解压各种归档文件格式的强大工具。通过掌握不同的选项和参数,你可以高效地处理.tar
、.tar.gz
、.tar.bz2
、.tar.xz
等格式的文件。希望本文提供的命令和示例能帮助你更好地使用tar
命令,处理各种文件格式。
本文链接:https://blog.runxinyun.com/post/168.html 转载需授权!
留言0