linux基础3

  1. tar打包命令
tar 命令常常用于打包、压缩某些文件或目录,也可以添加新文件到归档文件中。Tar 代表的是磁带存档,是一种归档的文件格式,早期用于将文件归档到磁带备份存储。现可以用于收集、分发、归档文件,还可以保留文件原有的属性,如:用户和组权限,访问和修改日期以及目录结构
tar zcvf /backup/oldboy.tar.gz/etc/ /oldboy/ /var/log/messages tar: 从成员名中删除开头的“/”--- 压缩数据信息,如果采用绝对路径,在压缩时会将/目录信息移出 解释:移出/ 根目录信息,主要是避免解压后数据会覆盖原有目录中数据信息 (默认设置)查看压缩包数据信息: tar tf/backup/oldboy.tar.gztar zxvf x--- 提取压缩包中数据信息 tar zxvf oldboy.tar.gz -C /data--- 将解压后的数据保存到指定目录中 (默认解压数据到当前目录)

补充:find删除目录部分数据信息
方式一:将本身定位目录进行排除
find /oldboy/ -mindepth 1 ! -name "*.tar.gz"
/oldboy/hosts
/oldboy/services
find /oldboy/ ! -path /oldboy/ ! -name "*.tar.gz"
/oldboy/services
/oldboy/hosts
命令(脚本文件) 参数信息 文件或目录(参数) --- 脚本
find /oldboy/ -mindepth 1 ! -name "*.tar.gz"|xargs rm -rf
xargs --- 放在管道符号后面,表示将管道符号前面命令产生的结果信息转换为参数信息,再交给xargs之后的命令进行处理
方式二: 将部分数据进行删除
find /oldboy/ -mindepth 1 ! -name "*.tar.gz" -delete
方式三: 将部分数据进行删除
find /oldboy/ -mindepth 1 ! -name "*.tar.gz" -exec rm -rf {} \; 压缩数据或者解压数据:为什么要移出 数据信息前面的 / 目录
第一个历程:环境准备:
创建重要配置文件信息:
cat /conf/oldboy.conf
oldboy123
第二个历程:压缩保存备份数据信息
tar zcvPf /backup/oldboy.tar.gz/conf/oldboy.conf

/conf/oldboy.conf
tar tf /backup/oldboy.tar.gz

tar: 从成员名中删除开头的“/”
/conf/oldboy.conf --- 查看数据没有移出 / 信息
第三个历程:修改编辑原有配置文件
# cat /conf/oldboy.conf

oldboy123 456 789
第四个历程:解压数据信息(不要移出根目录)
tar xPf /backup/oldboy.tar.gz
查看原有数据信息被覆盖
cat /conf/oldboy.conf
oldboy123
压缩数据排除功能:
tar zcvf /oldboy/oldboy.tar.gz /oldboy/ --exclude=/oldboy/oldboy02.txt --exclude=/oldboy/oldboy01.txt --- 排除单个数据信息
tar zcvf /oldboy/oldboy.tar.gz /oldboy/ --exclude-from=/oldboy/paichu.txt --- 排除多个数据信息
【linux基础3】作业:
  1. 一个压缩包生成之后,如何向这个压缩包中追加新的压缩数据
  1. 如何实现批量压缩不同的数据信息
    将/etc目录中以h开头的文件,进行压缩保存
    find /etc/ -maxdepth 1 -type f -name "h*"|xargs tar zcvf /backup/etc.tar.gz
2)文件权限信息:
r=4 w=2 x=1 -=0 权限符号对应数值信息
rw-r---wx 411
-wxr-xr--367 r--rwx--x542

结论:正常情况下,文件数据权限具有9位权限位 == 3特殊权限位
3)文件用户信息:
· 用户信息概念介绍:
用户:可以管理相应数据用户 可以管理相应进程用户
系统识别用户会按照用户编号识别== UID

用户组:可以多人同时管理某一个数据文件 可以同时设置调整多人的权限
系统识别用户组会按照用户组编号识别 == GID

硬盘 400 == 张三买的 属主
存储服务器40000== 张三 李四 王五 集资买的权力 - 组

· 系统用户分类:
系统超级管理员 root (皇帝) 0 对系统具有绝对控制能力
系统虚拟用户 nobody(傀儡) 1-999 可以管理进程/数据信息 ???
不能登陆系统/不能具有家目录

系统普通用户 oldboy(大臣) 1000+ 辅助root用户管理系统 - 必须由root用户分配特殊权利
4)文件属性时间信息
· 文件时间类型:

Access time (atime): 访问时间 -- 文件被查看打开的时间
Modify time (mtime):修改时间 -- 文件数据内容被改变的时间 Change time (ctime):改变时间 -- 文件属性信息变化的时间

刚创建一个文件后的时间信息:
stat oldboy.txt
Access: 2020-11-20 12:04:49.984479241 +0800
Modify: 2020-11-20 12:04:49.984479241 +0800 Change: 2020-11-20 12:04:49.984479241 +0800

进行文件访问查看:
[root@bj-oldboy-muban backup]# cat oldboy.txt
[root@bj-oldboy-muban backup]# stat oldboy.txt Access: 2020-11-20 12:05:52.602486960 +0800-- 访问时间变化 Modify: 2020-11-20 12:04:49.984479241 +0800 Change: 2020-11-20 12:04:49.984479241 +0800

修改文件内容信息:
[root@bj-oldboy-muban backup]# vi oldboy.txt
[root@bj-oldboy-muban backup]# stat oldboy.txt
Access: 2020-11-20 12:06:59.849495249 +0800-- 编辑文件时打开访问了文件 Modify: 2020-11-20 12:06:59.849495249 +0800-- 信息改变之后的时间 Change: 2020-11-20 12:06:59.853495250 +0800-- 文件大小属性变化

修改文件属性信息:
[root@bj-oldboy-muban backup]# stat oldboy.txt
Access: 2020-11-20 12:06:59.849495249 +0800 Modify: 2020-11-20 12:06:59.849495249 +0800 Change: 2020-11-20 12:10:46.299523165 +0800-- 修改属性时间会发生变化

和时间有关命令:date
· 查看时间信息
按照需求查看显示时间 date "+%Y-%m-%d %A %H:%M:%S" 2020-11-20 Friday 12:19:06

[root@bj-oldboy-muban backup]# date "+%F" 2020-11-20 [root@bj-oldboy-muban backup]# date "+%T" 12:21:06 查看过去或未来的时间: date -d "-1 day"--- 显示过去的多少天前时间 date -d "+19345 day"--- 显示未来的多少天后时间11月01日 00:00备份数据 前一天(10月31日)备份-生成hosts-11月01日 cp /etc/hosts /backup/hosts-$(date +%F -d "-1 day")hosts-10月31日 11月02日 00:00备份数据 前一天(11月01日)备份-生成hosts-11月02日 cp /etc/hosts /backup/hosts-$(date +%F -d "-1 day")hosts-11月01日

· 可以修改时间:
date -s "2020-12-12 12:12:12"--- 完整调整时间信息

作业讲解:
find命令扩展:
  1. 如何按照分钟查找数据信息
    -mmin
    [root@bj-oldboy-muban oldboy]# find /oldboy -mmin -2
    /oldboy
    /oldboy/oldboy02.txt
    [root@bj-oldboy-muban oldboy]# find /oldboy -mmin +2
    /oldboy/oldboy01.txt
  2. 如何查找多个条件的数据 条件一 类型文件 条件二 大小是大于10M 条件三 10天前数据
    /oldboy/01 开始 --- /oldboy/01/02/03/04/ 结束
    设置多个条件,是并且的关系
    find /oldboy -type d -a -name "oldboy*"
    设置多个条件,是或者的关系
    [root@bj-oldboy-muban oldboy]# find /oldboy -name ".jpg" -o -name ".sh"
    /oldboy/oldboy01/oldboy.jpg
    /oldboy/oldboy01/oldboy.sh
    /oldboy/oldboy02/oldgirl.jpg
    /oldboy/oldboy02/oldgirl.sh
    /oldboy/oldboy03/oldbaby.jpg
    /oldboy/oldboy03/oldbaby.sh
    find /oldboy -mindepth 2 -type f --- 可以不用再看到01.txt文件
    find /oldboy -maxdepth 5 -type f --- 可以不用再看到06.txt文件
    find /oldboy -mindepth 2 -maxdepth 5 -type f
    1. 如何排除指定目录不做查找
    /oldboy/01/oldboy.txt /oldboy/02/oldboy.txt根据名称查找 oldboy.txt但是不要去/oldboy/02/目录查找 /oldboy/03/oldboy.txt 排除方法一: # find /oldboy ! -path "/oldboy/02/*" -type f /oldboy/01/oldboy.txt /oldboy/03/oldboy.txt排除方法二: # find /oldboy -path "/oldboy/02" -prune -o -type f /oldboy/01/oldboy.txt /oldboy/03/oldboy.txt /oldboy/02/

    推荐阅读