Linux文件归档和备份

发布于:2025-07-31 ⋅ 阅读:(19) ⋅ 点赞:(0)

tar命令(对目录有rx权限,root权限)

创建tar包

 # 创建tar包,确保用户有权限访问目标文件
 [lyk@centos7 ~]$ tar -cf etc.tar /etc
 tar: 从成员名中删除开头的“/”
 tar: /etc/crypttab:无法 open: 权限不够
 tar: /etc/logrotate.d/named:无法 open: 权限不够
 # 没有权限读取的文件,无法打包
 ​
 #创建归档文件
 [root@server ~ 14:27:48]# tar -cf etc.tar /etc
 tar: 从成员名中删除开头的“/”
 # 再次打包,如果存在相同的tar包,不会提示是否覆盖
 [root@centos7 ~]# tar -cf etc.tar /etc
 ​
 #查看归档内容
 [root@server ~ 14:54:31]# tar -t -f etc.tar
 etc/
 etc/fstab
 etc/crypttab
 etc/mtab
 etc/resolv.conf
 ......
 ​
 #搜索特定文件,配合grep过滤
 [root@server ~ 14:55:08]# tar -t -f etc.tar | grep limits.conf
 etc/security/limits.conf
 ​
 #提取特定文件
 [root@server ~ 14:56:09]# tar -x -f etc.tar etc/security/limits.conf
 ​
 #安装 tree 命令
 [root@server ~ 14:56:41]# yum install -y tree
 已加载插件:fastestmirror, langpacks
 Loading mirror speeds from cached hostfile
  * base: mirrors.aliyun.com
 ......
 #查看提取的文件结构
 [root@server ~ 14:57:03]# tree etc
 etc
 └── security
     └── limits.conf
 ​
 1 directory, 1 file
 ​
 # 提取部分文件
 [root@centos7 ~]# tar -t -f etc.tar|grep etc/host
 etc/host.conf
 etc/hosts
 etc/hostname
 [root@centos7 ~]# tar -xf etc.tar $(tar -t -f etc.tar|grep etc/host)
 [root@centos7 ~]# tree etc
 etc
 ├── host.conf
 ├── hostname
 └── hosts
 ​
 0 directories, 3 files

tar包压缩管理

 # **三种压缩工具安装**
 [root@centos7 ~]# yum install gzip bzip2 xz
 ​
 # gzip压缩,时间最快
 [root@server ~ 15:18:04]#  time tar -czf etc.tar.gz /etc
 tar: 从成员名中删除开头的“/”
 ​
 real    0m0.813s
 user    0m0.741s
 sys 0m0.069s
 ​
 # bzip2 压缩
 [root@server ~ 15:23:35]# time tar -cjf etc.tar.bz2 /etc
 tar: 从成员名中删除开头的“/”
 ​
 real    0m1.772s
 user    0m1.710s
 sys 0m0.058s
 ​
 # xz 压缩,时间最长
 [root@server ~ 15:23:02]# time tar -cJf etc.tar.xz /etc
 tar: 从成员名中删除开头的“/”
 ​
 real    0m8.961s
 user    0m8.517s
 sys 0m0.404s
 # 查看压缩的 tar 包不需要指定压缩选项
 [root@centos7 ~]# tar -tf etc.tar.gz

tar包中追加文件

 #创建一个文件
 [root@client ~ 17:17:41]# touch 321.txt
 [root@client ~ 17:17:50]# pwd
 /root
 ​
 #追加放入tar包,!!无法放入etc.tar.gz
 # -r 选项(追加文件到归档)不能用于压缩的 tar 文件(如 .tar.gz、.tar.bz2、.tar.xz)。压缩后的归档文件是一个整体,无法直接追加内容。
 #报错
 [root@client ~ 17:18:02]# tar -r -f etc.tar.gz /root/321.txt
 tar: 无法更新压缩归档文件
 tar: Error is not recoverable: exiting now
 #放入
 [root@client ~ 17:18:37]# tar -r -f etc.tar /root/321.txt
 tar: 从成员名中删除开头的“/”
 #过滤查看
 [root@client ~ 17:19:33]# tar -tf etc.tar |grep 321.txt
 root/321.txt
 ​

删除tar包中文件

 #删除
 [root@client ~ 17:23:07]# tar --delete -f etc.tar root/321.txt 
 #过滤查不到已经删除
 [root@client ~ 17:23:42]# tar -tf etc.tar |grep 321.txt
 ​


网站公告

今日签到

点亮在社区的每一天
去签到