tar 打包压缩:

1.【打包】:

z 压缩

c 创建

v显示过程

f针对文件

tar  zcf  【压缩包的名字.tar.gz】  【要打包的东西】

练习1:把/etc/目录打包到/opt下面。

[root@localhost /]# ls -d /etc    #检查有没有要打包的目录
/etc
[root@localhost /]# cd /          #切换到打包目录的上一级
[root@localhost /]# tar zcvf /opt/etc.tar.gz ./etc/
./etc/
./etc/adjtime
[root@localhost /]# ls /opt/
etc.tar.gz  etc.tar.gz.

学习笔记-第9天-命令合集8_包名

练习2:把/usr/local目录打包到/tmp下面。

[root@localhost /]# ls -ld /usr/local/
drwxr-xr-x. 12 0 0 131 May  7  2023 /usr/local/
[root@localhost /]# cd /usr/
[root@localhost usr]# tar zcf /tmp/local.tar.gz ./local/

学习笔记-第9天-命令合集8_软连接_02

2. 【查看包里内容】

t  查看包里内容

                                                       tar tf 包名

[root@localhost usr]# tar tf /tmp/local.tar.gz
./local/
./local/bin/
./local/etc/
./local/games/
./local/include/
./local/lib/
./local/lib64/
./local/libexec/
./local/sbin/
./local/share/
./local/share/applications/
./local/share/info/
./local/share/man/
./local/share/man/man1/
./local/share/man/man1x/
./local/share/man/man2/
./local/share/man/man2x/
./local/share/man/man3/
./local/share/man/man3x/
./local/share/man/man4/
./local/share/man/man4x/
./local/share/man/man5/
./local/share/man/man5x/
./local/share/man/man6/
./local/share/man/man6x/
./local/share/man/man7/
./local/share/man/man7x/
./local/share/man/man8/
./local/share/man/man8x/
./local/share/man/man9/
./local/share/man/man9x/
./local/share/man/mann/
./local/src/

学习笔记-第9天-命令合集8_软连接_03

3. 【解包】

组合zxvf,缩写xf

X  解压(常用)

[root@localhost opt]# cd /opt/
[root@localhost opt]# ls
etc  etc.tar.gz.
[root@localhost opt]# rm -fr etc
[root@localhost opt]# ls
etc.tar.gz.
[root@localhost opt]# tar zxvf etc.tar.gz. 
[root@localhost opt]# tar zxf etc.tar.gz. 
[root@localhost opt]# tar xf etc.tar.gz. 
[root@localhost opt]# ls etc
[root@localhost opt]# history

学习笔记-第9天-命令合集8_软连接_04

-c 指定路径解压

[root@localhost opt]# tar xf etc.tar.gz -C /home/oldboy/
[root@localhost opt]# ls /home/oldboy/
etc

学习笔记-第9天-命令合集8_包名_05

-p 保持属性(zcfg)

[root@localhost tmp]# tar zcvf /tmp/a.tar.bz2 /etc/hosts
tar: Removing leading `/' from member names
/etc/hosts

学习笔记-第9天-命令合集8_包名_06

两种解压方法:

[root@localhost tmp]# tar xf a.tar.bz2   #gzip和bzip统一的解压。

4.【排除打包--exclude】

1.环境准备

[root@localhost tmp]# mkdir /oldboy -p
[root@localhost tmp]# cd /oldboy/
[root@localhost oldboy]# ls
[root@localhost oldboy]# touch file{1..5}
[root@localhost oldboy]# ls
file1  file2  file3  file4  file5
[root@localhost oldboy]# cd ../

学习笔记-第9天-命令合集8_bash_07

2.练习排除打包

[root@localhost /]# tar zcvf /tmp/pai.tar.gz ./oldboy/ --exclude=file1
./oldboy/
./oldboy/file2
./oldboy/file3
./oldboy/file4
./oldboy/file5
[root@localhost /]# tar zcvf /tmp/pai.tar.gz ./oldboy/ --exclude=file{1..3}
./oldboy/
./oldboy/file4
./oldboy/file5

学习笔记-第9天-命令合集8_包名_08

tar     zcvf    /tmp/pai.tar.gz ./oldboy/ --exclude=file1

命令    参数      包名       目录    排除的文件

3.从文件中排除打包:

--exclude--from(-X)

[root@localhost /]# cat >paichu.log<<EOF
> file1
> file5
> EOF
[root@localhost /]# cat paichu.log
file1
file5
[root@localhost /]# tar zcvfX /tmp/pai.tar.gz paichu.log ./oldboy/
./oldboy/
./oldboy/file2
./oldboy/file3
./oldboy/file4

学习笔记-第9天-命令合集8_bash_09

4. -h 打包软连接

/etc/rc.local是软连接文件,指向真实路径/etc/rc.d/rc.local

默认打包的时候,只打包了软连接文件。

[root@localhost /]# mkdir /backup -p
[root@localhost /]# tar zcf /backup/rc.local.tar.gz /etc/rc.local 
tar: Removing leading `/' from member names
[root@localhost /]# ca /backup/
-bash: ca: command not found
[root@localhost /]# cd /backup/
[root@localhost backup]# ls
rc.local.tar.gz
[root@localhost backup]# tar xf rc.local.tar.gz
[root@localhost backup]# ls
etc  rc.local.tar.gz
[root@localhost backup]# ls etc/
rc.local
[root@localhost backup]# cat etc/rc.local
cat: etc/rc.local: No such file or directory
[root@localhost backup]# cd etc/
[root@localhost etc]# cat rc.local
cat: rc.local: No such file or directory
[root@localhost etc]# ls
rc.local
[root@localhost etc]# cd /backup/
[root@localhost backup]# ls
etc  rc.local.tar.gz
[root@localhost backup]# rm -fr etc
[root@localhost backup]# ls
rc.local.tar.gz
[root@localhost backup]# rm -fr rc.local.tar.gz 
[root@localhost backup]# ls

而加上-h打包,可以打包软链接文件。

[root@localhost backup]# tar zcvfh /backup/rc.local_1.tar.gz /etc/rc.local
tar: Removing leading `/' from member names
/etc/rc.local
[root@localhost backup]# cd /backup/
[root@localhost backup]# tar xf rc.local_1.tar.gz 
[root@localhost backup]# cat etc/rc.local 
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot

学习笔记-第9天-命令合集8_软连接_10