Linux tar命令教程:文件打包和压缩的神器(附案例详解和注意事项)
我要下东西噢 2024-06-11 12:37:02 阅读 75
Linux tar命令介绍
tar(Tape ARchive),用于在linux中打包和备份文件。它可以将多个文件和目录打包成一个tar文件,也可以从tar文件中提取文件和目录。此外,它还可以与gz,bzip2,xz等压缩工具结合使用,进行文件和目录的压缩和解压。
Linux tar命令适用的Linux版本
tar命令在各个Linux发行版中均通用。包括但不限于 Ubuntu、Debian、Fedora、CentOS、openSUSE、Arch Linux 等。针对不同的发行版,安装方法可能稍有不同。对于基于Debian的系统,可以使用apt-get命令;对于基于Red Hat的系统,可以使用yum命令(CentOS7)或dnf命令(CentOS8)。但实际上,大多数Linux发行版在安装时已经默认安装了tar命令。
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install tar # Debian/Ubuntu[linux@bashcommandnotfound.cn ~]$ sudo yum install tar # CentOS 7[linux@bashcommandnotfound.cn ~]$ sudo dnf install tar # CentOS 8
Linux tar命令的基本语法
tar命令的基本语法为:
tar [主选项+辅选项] [文件或目录]
在这里,主选项通常只能选择一个,用来指定tar命令进行的操作类型,比如创建新的归档文件、列出归档文件内容、从归档文件中提取内容等。辅选项可以为零或多个,用来指定主选项操作的具体方式。
Linux tar命令的常用选项或参数说明
选项 | 描述 |
---|---|
-c | 创建新的归档文件 |
-x | 提取文件 |
-t | 列出归档文件内容 |
-u | 添加文件 |
-f | 指定文件名 |
-v | 冗余输出 |
-z | gzip压缩或解压 |
-j | bzip2压缩或解压 |
-J | xz压缩或解压 |
-P | 绝对路径 |
-C | 切换到指定目录 |
–exclude | 排除文件 |
Linux tar命令实例详解
实例1:创建tar文件
[linux@bashcommandnotfound.cn ~]$ tar -cvf archive.tar file1 file2
在上述示例中,我们使用-c
选项创建一个新的tar归档,-v
选项让tar在创建归档时显示有关其进度的信息,-f
选项后面跟着我们想要创建的归档的名称,最后是我们想要添加到归档中的文件名。
实例2:从tar文件中提取文件
[linux@bashcommandnotfound.cn ~]$ tar -xvf archive.tar
在这个示例中,我们使用-x
选项从一个归档中提取文件,-v
选项显示提取过程的信息,-f
选项后跟着包含我们想要提取的文件的归档的名称。
实例3:创建压缩的tar文件
在Linux中,tar命令可以用来压缩文件。可以使用’z’选项,通过gzip进行压缩;或者使用’j’选项,通过bzip2进行压缩。下面是创建.gz和.bz2压缩文件的示例。
[linux@bashcommandnotfound.cn ~]$ tar -cvfz archive.tar.gz file1 file2[linux@bashcommandnotfound.cn ~]$ tar -cvfj archive.tar.bz2 file1 file2
在上述示例中,我们使用‘c’选项创建一个新的tar归档,‘v’选项让tar在创建归档时显示有关其进度的信息,‘f’选项后面跟着我们想要创建的归档的名称,‘z’或‘j’选项指示tar命令用gzip或bzip2进行压缩,最后是我们想要添加到归档中的文件名。
实例4:从压缩的tar文件中提取文件
提取压缩的tar文件与提取tar文件基本相同,只是需要额外指明被解压的文件是gzip还是bzip2压缩的。使用’z’选项提取.gz文件,或者使用’j’选项提取.bz2文件。例如:
[linux@bashcommandnotfound.cn ~]$ tar -xvfz archive.tar.gz[linux@bashcommandnotfound.cn ~]$ tar -xvfj archive.tar.bz2
上述命令在执行时将提取存档文件,并使用gzip或bzip2进行解压缩。
实例5:排除特定文件
假设你有一堆文件需要压缩为归档文件,但是其中的一些文件需要排除。你可以使用--exclude
选项来指定排除特定的文件或者文件类型。例如:
[linux@bashcommandnotfound.cn ~]$ tar -cvfz archive.tar.gz --exclude '*.txt' *
上述命令将压缩当前目录下的所有文件(‘*’),但是它将排除所有的txt文件。
实例6:查看tar文件内容
如果你想查看tar归档文件中的内容,而不提取它们,你可以使用’t’选项。例如:
[linux@bashcommandnotfound.cn ~]$ tar -tvf archive.tar
这个命令会显示出tar归档文件中的所有文件和目录,但并不会提取它们。
实例7:添加文件到已有的tar文件
如果你想新添加一些文件到已经存在的tar归档文件中,你可以使用’r’选项。请注意,这个选项不能用于压缩过的tar文件。例如:
[linux@bashcommandnotfound.cn ~]$ tar -rvf archive.tar newfile
上述命令会将newfile添加到现有的归档文件archive.tar中。
实例8:从tar文件中删除文件
如果你想从存在的tar文件中删除一些文件,你可以使用’–delete’选项。和’r’选项一样,该选项也不能用于压缩过的tar文件。例如:
[linux@bashcommandnotfound.cn ~]$ tar --delete -f archive.tar unwantedfile
以上命令将会从archive.tar中删除unwantedfile。注意这个操作是不可逆的,所以在执行前请确保你真的要删除这个文件。
实例9:修改tar文件中文件的权限
tar命令的’–mode’选项可用于在添加文件到tar中时修改其权限。例如:
[linux@bashcommandnotfound.cn ~]$ tar -cvf archive.tar --mode='u=rwX,g=rwX,o=r' file1 file2
这个命令在归档文件archive.tar中创建文件,同时给所有的用户和组赋予读写权限,对所有者还额外赋予执行权限。
实例10:创建包含整个目录的tar文件
tar命令也可以用于归档整个目录及其子目录和文件。例如:
[linux@bashcommandnotfound.cn ~]$ tar -cvf archive.tar mydirectory/
这个命令会将mydirectory目录及其所有子目录和文件归档到archive.tar中。
实例11:使用通配符来创建tar文件
如果你想把所有具有相同过滤条件的文件都归档到一个tar文件中,你可以使用诸如’*‘或者’?'这样的通配符。例如:
[linux@bashcommandnotfound.cn ~]$ tar -cvf textfiles.tar *.txt
这个命令将把所有.txt文件归档到textfiles.tar中。
实例12:解压tar文件到指定目录
如果你想将tar文件解压到指定的目录中,而不是当前目录,你可以使用’-C’选项。例如:
[linux@bashcommandnotfound.cn ~]$ tar -xvf archive.tar -C /path/to/directory
在上述示例中,tar文件将会被解压到/path/to/directory这个指定的目录中。
实例13:列出tar文件内容
如果你想查看tar文件中包含的文件和文件夹,而不真正的解压它,你可以使用’-t’选项。例如:
[linux@bashcommandnotfound.cn ~]$ tar -tvf archive.tar
上述命令会列出tar文件archive.tar中的所有文件和目录,但并不会解压这个tar文件。
实例14:更新tar文件中的文件
如果tar文件中的某些文件在归档之后有所改动,你可以使用’-u’选项来更新存在于归档中的文件版本。例如:
[linux@bashcommandnotfound.cn ~]$ tar -uvf archive.tar file1
这个命令将更新tar文件archive.tar中的file1文件。注意,与’r’和’–delete’选项一样,'-u’选项不能用于压缩过的tar文件。
Linux tar命令的注意事项
bash: tar: command not found: 如果遇到这个错误信息,意味着你的系统中没有安装tar命令,可以使用上述的安装命令进行安装。
Linux tar相关命令
find命令:用于在系统中查找文件或目录
cp命令:用于复制文件或目录
rm命令:用于删除文件或目录
mv命令:用于移动或重命名文件或目录
cat命令:用于查看文件内容
less命令:用于分页查看文件内容
more命令:也是用于分页查看文件内容,与less类似
gz命令:用于压缩文件
bzip2命令:也是用于压缩文件,与gz类似
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。