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.
练习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/
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/
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
-c 指定路径解压
[root@localhost opt]# tar xf etc.tar.gz -C /home/oldboy/
[root@localhost opt]# ls /home/oldboy/
etc
-p 保持属性(zcfg)
[root@localhost tmp]# tar zcvf /tmp/a.tar.bz2 /etc/hosts
tar: Removing leading `/' from member names
/etc/hosts
两种解压方法:
[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 ../
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
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
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