dakuan2024 发表于 2024-6-29 01:49:08

tar命令参数详解

本帖最后由 dakuan2024 于 2024-7-4 22:15 编辑

tar命令参数详解
tar命令是Linux系统中用于打包、解包、压缩和解压缩文件的工具。它支持多种压缩格式,如gzip、bzip2等,并且提供了丰富的参数选项以满足不同的需求。以下是一些常用的tar命令参数及其解释:12

-c 或 --create:创建新的备份文件。
-x 或 --extract 或 --get:从备份文件中还原文件。
-z 或 --gzip 或 --ungzip:通过gzip指令处理备份文件,用于压缩和解压缩。
-v 或 --verbose:显示指令执行过程。
-f <备份文件> 或 --file=<备份文件>:指定备份文件。
-j:代表使用bzip2程序进行文件的压缩。
-J:代表调用“xz”程序进行文件的压缩。
-z:用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
-A 或 --catenate 或 --concatenate:将一存档与已有的存档合并。
-d 或 --diff 或 --compare:比较存档与当前文件的不同之处。
--delete:从存档中删除。
-b <区块数目> 或 --blocking-factor=<区块数目>:设置每笔记录的区块数目,每个区块大小为12Bytes。
-B 或 --read-full-records:读取数据时重设区块大小。
-C <目的目录> 或 --directory=<目的目录>:切换到指定的目录。
-F <Script文件> 或 --info-script=<Script文件>:每次更换磁带时,就执行指定的Script文件。
-g 或 --listed-incremental:处理GNU格式的大量备份。
-G 或 --incremental:处理旧的GNU格式的大量备份。
这些参数可以根据需要组合使用,以实现打包、解包、压缩和解压缩文件的操作





tar打包目录
在Linux系统中,tar是一个常用的命令行工具,用于创建、维护和提取tar文件。以下是一些使用tar命令来打包和解压tar文件的方法。

打包目录

tar -cvf archive.tar /path/to/directory
在这个例子中,archive.tar是你创建的tar文件的名字,/path/to/directory是你想要打包的目录的路径。

打包并压缩目录

tar -czvf archive.tar.gz /path/to/directory
在这个例子中,archive.tar.gz是你创建的tar文件的名字,/path/to/directory是你想要打包的目录的路径。

解压tar文件

tar -xvf archive.tar
在这个例子中,archive.tar是你想要解压的tar文件的名字。

解压并解压缩tar文件

tar -xzvf archive.tar.gz
在这个例子中,archive.tar.gz是你想要解压的tar文件的名字。

注意:

选项c代表创建新的归档文件。如果你使用选项x,那么tar命令将解压文件。

选项v代表详细模式,它会显示归档或解压的过程。

选项f后面跟着的是归档文件的名称。

选项z表示使用gzip压缩或解压缩。

这些是tar命令的基本用法,你可以根据需要添加或删除选项。






tar打包去掉部分或全部路径
如果你想要在使用tar命令打包时去掉文件的路径,你可以使用--strip-components选项。这个选项允许你指定要去掉的路径层级数。

例如,如果你想打包一个文件/home/user/data/file.txt,并且你想要在打包后只有file.txt而没有路径data/和user/,你可以使用以下命令:

tar czvf archive.tar.gz --strip-components=2 /home/user/data/file.txt
在这个例子中,--strip-components=2告诉tar去掉两层目录层级,即只保留file.txt。如果你只想去掉一层目录(即user/data/),则可以使用--strip-components=1。

请注意,这个选项只适用于打包单个文件时。如果你打包一个目录,并想要去掉那个目录本身,你可以先cd进入那个目录,然后使用相对路径打包。例如:

cd /home/user/data
tar czvf ../archive.tar.gz --strip-components=1 .
这将会打包当前目录(data/)里的所有文件,并在打包后的文件里去掉当前目录本身,即只保留其中的文件。




tar打包不带路径
在Linux系统中,使用tar命令进行文件或目录的打包时,默认会将文件的路径一起打包进去。但是,有时候我们可能只需要文件或目录本身,而不希望包含它们的原始路径。以下是一些方法来实现tar打包时不带路径:

打包当前目录下的所有文件,不包括路径:

使用tar命令的-C选项可以改变到指定目录进行打包,但这样仍然会将路径打包进去。为了避免这种情况,可以在打包时不直接指定文件夹名,而是在文件夹名后面加上一个.,这样tar只会打包该目录下的文件,而不会包含目录名本身。例如:


tar -cvf output.tar -C /path/to/directory .
这里的.表示当前目录,这样打包出来的output.tar中就不会包含原始的路径信息。





解压到指定目录时不包含原目录结构:

如果需要解压到指定目录,并且不希望保留原始的目录结构,可以使用--strip-components选项来移除一定数量的目录层级。例如,要解压一个带有两层目录结构的tar.gz文件到指定目录,并去掉两层目录结构,可以使用:


tar -xzvf archive.tar.gz --strip-components=2 -C /path/to/extract/
这里的--strip-components=2表示在解压时去掉两层目录结构。

排除特定目录或文件:

使用--exclude选项可以排除打包过程中的特定文件或目录。例如,要打包一个目录但排除其中的某个子目录,可以使用:


tar --exclude=path/to/exclude_directory -czvf archive.tar.gz /path/to/directory/
这样,exclude_directory及其内容将不会被包含在打包文件中。

通过上述方法,可以灵活地控制tar命令的打包行为,以满足不同的需求。





tar打包子目录下的全部文件并去掉路径
要在tar命令中包含子目录下的所有文件,并且去掉文件的路径,可以使用--strip-components选项。这个选项会去掉文件路径中的指定数量的目录,将所有文件打包到根目录下。

以下是一个示例命令,它会打包subdir目录及其子目录下的所有文件,并去掉所有的路径信息:

tar -czvf archive.tar.gz --strip-components=1 subdir/ .
在这个命令中:

-c: 创建一个新的归档文件。

-z: 使用gzip压缩归档文件。

-v: 显示过程中被添加到归档文件中的文件(verbose模式)。

-f archive.tar.gz: 指定归档文件的名称。

--strip-components=1: 去掉路径中的一个组件,即去掉subdir/部分。

subdir/ .: 指定要打包的目录,后面的点.表示同时包含当前目录下的文件。

请注意,这个命令会将subdir目录下的所有文件和子目录按照相对于subdir的路径打包,并且不会包含subdir目录本身。如果你只想打包文件而不包含目录,你可能需要额外的处理来排除目录或者使用更复杂的find命令来指定需要打包的文件。





tar包解压到指定路径
在Linux系统中,可以使用tar命令解压缩文件到指定路径。命令格式如下:

tar -xf file.tar -C /path/to/directory
其中,-x表示解压缩,-f指定要解压的文件,-C表示解压到指定的目录。

例如,如果你有一个名为example.tar的tar包,并且你想将其解压到/home/user/myfolder目录下,你可以使用以下命令:

tar -xf example.tar -C /home/user/myfolder
如果你使用的是Windows系统,并且安装了类似Cygwin或者Git Bash这样的工具,同样可以使用上述命令。如果你使用的是Windows命令提示符或者PowerShell,你可能需要使用tar.exe工具,这通常包含在像Git for Windows这样的软件包中。




tar解压到当前目录并去掉路径
要使用tar命令解压缩文件到当前目录并去掉路径,可以使用--strip-components选项。这个选项允许你指定在提取文件之前应该跳过的目录层级。

例如,如果你有一个名为archive.tar的tar文件,其中包含了some/path/to/files,并且你想解压到当前目录并且去掉最外层的some/path/to/,你可以使用以下命令:

tar -xvf archive.tar --strip-components=3
这里的-x表示解压,-v表示详细输出,-f指定文件名。--strip-components=3告诉tar命令跳过3层目录(即最外层的some/path/to/)。如果你不确定有多少层目录需要跳过,可以查看tar文件的内容:

tar -tf archive.tar
这将列出tar文件中的所有文件和目录,从而帮助你确定需要跳过多少层目录。

请注意,这将只修改提取的文件和目录结构,不会修改tar文件本身。





tar解压到指定目录并去掉原路径
要使用tar命令解压缩文件到指定目录并且去掉原始路径的部分,可以使用-C选项指定解压目录,并使用--strip-components选项去掉路径前的目录层级。

下面是一个示例命令,它将解压archive.tar文件到/path/to/directory,并去掉前两层目录:

tar -xvf archive.tar -C /path/to/directory --strip-components 2
请根据实际情况调整archive.tar、/path/to/directory和--strip-components后的数字。--strip-components的数字表示要去掉的目录层级数。







tar解包到指定目录
在Linux系统中,你可以使用tar命令来解压缩文件到指定的目录。使用-C选项可以指定解压缩的目录。

例如,如果你有一个名为archive.tar的tar包,并且你想要解压到/path/to/directory目录下,你可以使用以下命令:

tar -xvf archive.tar -C /path/to/directory
解释:

x 表示解压

v 表示详细模式(verbose),会显示解压的过程

f 表示文件,后面跟文件名

C 表示解压到指定的目录

如果你的tar包是gzip压缩的(即使用.tar.gz或.tgz扩展名),可以使用以下命令:

tar -zxvf archive.tar.gz -C /path/to/directory
在这里,-z 选项用于解压一个gzip压缩的tar包。


sw23243614 发表于 2024-6-30 18:23:07

谢谢分享阿

yj3259669 发表于 2024-9-23 22:43:03

谢谢分享

uin 发表于 2024-9-24 07:35:57

谢谢分享阿

大树乘凉 发表于 2024-9-26 00:32:13

赚点猫粮备用

qaz123qq 发表于 2024-11-25 09:47:58

买猫粮,感谢分享

Marken888 发表于 2024-11-25 10:38:49

买猫粮,感谢分享

lisuo888 发表于 2024-11-25 17:09:02

谢谢分享阿
页: [1]
查看完整版本: tar命令参数详解