Linux 基本命令 ——tar(打包)
叶M12 2024-10-03 17:07:03 阅读 66
tar:是要用来 打包或者解包 的命令,同时也是 压缩或者解压缩 的命令,常常用作备份文件使用,或将许多文件打成一个包并压缩。
注意:以下代码中 ^C 结尾的为注释行;蓝色字体为目录;红色字体为包
一、打包
tar -cf 包名 要被打包的文件或目录
tar [选项] [目标包名] [源文件或目录]
选项:
-c:创建一个包
-f:;定义目标包
目标包名:
要打成的包名
源文件名或目录名:
哪些文件或目录要被打成包
代码如下:
[root@iZbp1gh065n66eoqapqav5Z ~]# 快捷键 Ctrl+C 可以使得此行命令无效并进入新一行^C
[root@iZbp1gh065n66eoqapqav5Z ~]# Ctrl+C 快捷键后会出现 ^c 指令,表示忽略此行命令^C
[root@iZbp1gh065n66eoqapqav5Z ~]# 所以本篇博客代码中命令行出现 ^c 指令的请看做注释行^C
[root@iZbp1gh065n66eoqapqav5Z ~]# 显示当前目录下所有文件及目录^C
[root@iZbp1gh065n66eoqapqav5Z ~]# ls
a.txt dir1 ds shellday1 soft
[root@iZbp1gh065n66eoqapqav5Z ~]# 将 dir1 目录, a.txt 文件打包为aa.tar^C
[root@iZbp1gh065n66eoqapqav5Z ~]# tar -cf aa.tar ./dir1 ./a.txt
[root@iZbp1gh065n66eoqapqav5Z ~]# ls
aa.tar a.txt dir1 ds shellday1 soft
[root@iZbp1gh065n66eoqapqav5Z ~]# 使用 ls 命令再次查看当前目录下的文件及目录^C
[root@iZbp1gh065n66eoqapqav5Z ~]# 可以看到出现了 aa.tar ,说明打包成功^C
二、查看包(在不解包的情况下查看)
tar -tf 包名
tar [选项] [包名]
选项:
-t:查看包里面的文件或目录
-f:;定义目标包
-v:显示打包过程(不重要,压缩包也适用)
目标包名:
要查看的包的路径
代码如下:
[root@iZbp1gh065n66eoqapqav5Z ~]# 上一段代码将 dir1 目录, a.txt 文件打包为 aa.tar 包^C
[root@iZbp1gh065n66eoqapqav5Z ~]# 使用 tar -tf aa.tar 可查看包内容^C
[root@iZbp1gh065n66eoqapqav5Z ~]# tar -tf aa.tar
./dir1/
./dir1/b.txt
./dir1/shellday1/
./dir1/shellday1/demo2.sh
./dir1/shellday1/demo3.sh
./dir1/shellday1/sh
./dir1/shellday1/qwe
./dir1/shellday1/demo1.sh
./dir1/c.txt
./dir1/bb.txt
./dir1/a.txt
./a.txt
[root@iZbp1gh065n66eoqapqav5Z ~]# 可以看到,aa.tar 包将dir1目录及dir1的子目录、子文件,以及a.txt文件都显示出来了,也就是显示了 aa.tar 包中所有的内容,说明查看包命令执行成功^C
三、添加文件到包
tar -rf 包名 要被追加入包的文件或目录
tar [选项] [包名] [源文件或目录]
选项:
-r:将文件追加到包中
-f:;定义目标包
包名:
要被追加到的包的路径
源文件名或目录名:
要添加的文件或目录
代码如下:
[root@iZbp1gh065n66eoqapqav5Z ~]# ls
aa.tar a.txt dir1 ds shellday1 soft
[root@iZbp1gh065n66eoqapqav5Z ~]# 已知本文章标题一打包的代码是将 dir1 目录, a.txt 文件打包为aa.tar包,通过上一条 ls 命令查看到当前目录中所有文件及目录^C
[root@iZbp1gh065n66eoqapqav5Z ~]# 我们用 tar -rf 命令将 ds 和 shellday1 目录添加到 aa.tar 包中^C
[root@iZbp1gh065n66eoqapqav5Z ~]# tar -rf aa.tar ./ds ./shellday1
[root@iZbp1gh065n66eoqapqav5Z ~]# 查看 aa.tar 包内容^C
[root@iZbp1gh065n66eoqapqav5Z ~]# tar -tf aa.tar
./dir1/
./dir1/b.txt
./dir1/shellday1/
./dir1/shellday1/demo2.sh
./dir1/shellday1/demo3.sh
./dir1/shellday1/sh
./dir1/shellday1/qwe
./dir1/shellday1/demo1.sh
./dir1/c.txt
./dir1/bb.txt
./dir1/a.txt
./a.txt
./ds/
./ds/cc
./ds/aa/
./ds/aa/bb/
./ds/aa/bb/cc/
./ds/z2/
./ds/
./ds/cc
./ds/aa/
./ds/aa/bb/
./ds/aa/bb/cc/
./ds/z2/
./shellday1/
./shellday1/demo2.sh
./shellday1/demo3.sh
./shellday1/sh
./shellday1/qwe
./shellday1/demo1.sh
[root@iZbp1gh065n66eoqapqav5Z ~]# 可以看到,aa.tar 包将dir1目录及dir1的子目录、子文件,以及a.txt文件,ds 目录及ds 的子目录、子文件,shellday1 目录及 shellday1 的子目录、子文件都显 示出来了,说明添加文件及目录到包命令执行成功^C
四、解包
tar -xf 包名
tar [选项] [包名]
选项:
-x:将包解包
-f: 定义目标包
-v:显示解包过程(不重要,压缩包也适用)
目标包名:
要解包的的包的路径
代码如下:
[root@iZbp1gh065n66eoqapqav5Z ~]# 根据本文章“打包”,“添加目录到包”两段代码的操作,已经将 当前目录下的dir1目录,a.txt文件,ds 目录,shellday1 目录都打包进 aa.tar 包里了^C[root@iZbp1gh065n66eoqapqav5Z ~]# 先 ls 命令查看当前目录下的文件及目^C
[root@iZbp1gh065n66eoqapqav5Z ~]# 为了方便观察解包结果,我们先将当前目录下的dir1目录,a.txt 文件, ds 目录,shellday1 目录删掉^C
[root@iZbp1gh065n66eoqapqav5Z ~]# rm -rf dir1 ds a.txt shellday1
[root@iZbp1gh065n66eoqapqav5Z ~]# ls 命令查看当前目录下的文件及目录^C
[root@iZbp1gh065n66eoqapqav5Z ~]# ls
aa.tar soft
[root@iZbp1gh065n66eoqapqav5Z ~]# 接下来我们用 tar -xf 命令将 aa.tar 包解包^C
[root@iZbp1gh065n66eoqapqav5Z ~]# tar -xf aa.tar
[root@iZbp1gh065n66eoqapqav5Z ~]# 再次用 ls 命令查看当前目录下的文件及目录^C
[root@iZbp1gh065n66eoqapqav5Z ~]# ls
aa.tar a.txt dir1 ds shellday1 soft
[root@iZbp1gh065n66eoqapqav5Z ~]# 发现dir1目录,a.txt文件,ds 目录,shellday1 目录重新出 现,说明解包成功^C
(注释)若将 a.txt , dir1 打包想看到它的打包过程,只需要 -cf 加上 v,写成 -cvf 即可
[root@iZbp1gh065n66eoqapqav5Z ~]# tar -cvf dir.tar ./a.txt ./dir1
./a.txt
./dir1/
./dir1/b.txt
./dir1/shellday1/
./dir1/shellday1/demo2.sh
./dir1/shellday1/demo3.sh
./dir1/shellday1/sh
./dir1/shellday1/qwe
./dir1/shellday1/demo1.sh
./dir1/c.txt
./dir1/bb.txt
./dir1/a.txt
[root@iZbp1gh065n66eoqapqav5Z ~]# 一串结果现实的是压缩过程,因为有 v ,-v是显示压缩过程
五、打压缩包
tar -czf 包名 要被打包的文件或目录
tar [选项] [压缩名] [源文件]
选项:
-c:打包
-z:将打包文件及目录用 gzip 格式压缩
-v:显示压缩过程(不重要)
-f:定义目标包
压缩名:
指定压缩的名字
源文件:
要打包压缩的文件及目录
代码如下:
[root@iZbp1gh065n66eoqapqav5Z ~]# ls查看当前目录下的文件及目录^C
[root@iZbp1gh065n66eoqapqav5Z ~]# ls
aa.tar a.txt dir1 ds shellday1 soft
[root@iZbp1gh065n66eoqapqav5Z ~]# 将 a.txt 文件和 dir1 目录放进压缩包 dir_yasuo 压缩包中,由于我们没有加 z 所以不显示压缩过程,若想看压缩过程,将以下命令的 -czf 写成 -czvf 即可^C
[root@iZbp1gh065n66eoqapqav5Z ~]# tar -czf dir_yasuo.tar.gz ./a.txt ./dir1
[root@iZbp1gh065n66eoqapqav5Z ~]# 再次用 ls 命令查看当前目录下的文件及目录^C
[root@iZbp1gh065n66eoqapqav5Z ~]# ls
aa.tar a.txt dir1 dir_yasuo.tar.gz ds shellday1 soft
[root@iZbp1gh065n66eoqapqav5Z ~]# 使用 tar -tf dir_yasuo.tar.gz 可查看包内容^C
[root@iZbp1gh065n66eoqapqav5Z ~]# tar -tf dir_yasuo.tar.gz
./a.txt
./dir1/
./dir1/b.txt
./dir1/shellday1/
./dir1/shellday1/demo2.sh
./dir1/shellday1/demo3.sh
./dir1/shellday1/sh
./dir1/shellday1/qwe
./dir1/shellday1/demo1.sh
./dir1/c.txt
./dir1/bb.txt
./dir1/a.txt
[root@iZbp1gh065n66eoqapqav5Z ~]# 可以看到,dir_yasuo.tar.gz 包将dir1目录及dir1的子目录、子文件,以及a.txt文件都显示出来了,说明打压缩包命令执行成功^C
六、解压缩包
tar -xzf 包名
tar [选项] [包名]
选项:
-x:将包解包
-z:将打包文件以 gzip 格式解压缩
-f: 定义目标包
-v:显示解压缩过程(不重要)
目标包名:
要解压缩包的包的路径
代码如下:
[root@iZbp1gh065n66eoqapqav5Z ~]# 上一个代码我们将 a.txt 文件和 dir1 目录放进压缩包 dir_yasuo 压缩包中了,为了方便查看解压缩包的结果,我们先删掉a.txt 文件和 dir1 目录^C
[root@iZbp1gh065n66eoqapqav5Z ~]# rm -rf a.txt dir1
[root@iZbp1gh065n66eoqapqav5Z ~]# ls 命令查看当前目录下的文件及目录^C
[root@iZbp1gh065n66eoqapqav5Z ~]# ls
aa.tar dir_yasuo.tar.gz ds shellday1 soft
[root@iZbp1gh065n66eoqapqav5Z ~]# 接下来我们用 tar -xzf 命令将 dir_yasuo.tar.gz 压缩包解包^C
[root@iZbp1gh065n66eoqapqav5Z ~]# tar -xzf dir_yasuo.tar.gz
[root@iZbp1gh065n66eoqapqav5Z ~]# 再次用 ls 命令查看当前目录下的文件及目录^C
[root@iZbp1gh065n66eoqapqav5Z ~]# ls
aa.tar a.txt dir1 dir_yasuo.tar.gz ds shellday1 soft
[root@iZbp1gh065n66eoqapqav5Z ~]# 发现a.txt 文件和 dir1 目录重新出现,说明解压缩包包成功^C
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。