day16-操作系统文件属性/正则符号

课程知识回顾

  • 文件属性介绍
文件属性中文件权限概念: rwx -  权限赋予用户(9位)  数值表示权限  rwx-w--wx 723
       根据权限找出相应文件数据:
       find /oldboy -type f -perm 666
       文件属性中用户信息概念: 用户分类(皇帝 平民 傀儡--不能登陆系统/管理服务进程)  用户和组关系
       文件属性中时间信息概念: 时间分类(atime mtime ctime)  date
  • 根据时间信息查找文件数据
       find /oldboy -type f -mtime +7
       +7:  7天以前的数据信息
        7:   正好距离当前第7天的数据
       -7:  7天以内的数据信息
  • find命令找东西做处理方法
       方法一: 配合xargs命令使用
       find /oldboy -type f|xargs rm
       find /oldboy -type f|xargs -n1 rm

       方法二: 配合反引号命令使用:
       rm -f `find /oldboy -type f`

       方法三: 配合find命令参数
       find /oldboy -type f -delete

       方法四: 配合find命令参数 -exec
       find /oldboy -type f -exec rm {} \;

文件属性--文件索引概念

inode 
    概念: 用于存储文件属性信息/存储文件指针信息
          1个文件使用一个inode
    诞生: 创建文件系统(格式化)
    查看: df -i
    
    block
    概念: 用于存储文件数据信息
          1个文件可能有多个block 512字节
    诞生: 创建文件系统(格式化)
    查看: df  
 
    1个block默认512字节   多个block 
    block调节小一些: 存储小文件更加有力
    存储大文件. 占用多个block, 读一个blcok和写一个block 都会消耗磁盘I/O
    企业: 默认block大小
    
    block调节大一些: 存储大文件更加有力
    企业: 视频网站. 调整磁盘block更大

文件属性--硬链接数


    硬链接:
    概念:
    01. inode号码一致的数据成为互为硬链接
    02. 相当于数据多个门
    创建: ln /oldboy/oldboy.txt  /oldboy/oldboy_hard_lind.txt
    特点: 
    01. 源文件删除, 链接文件依然生效
    02. 硬链接创建成功, 不会占用新的inode和block
    03. 硬链接对目录不能进行处理, 不能创建硬链接目录
    04. 默认目录硬链接数为2 默认文件硬链接数为1
    作用:
    01. 硬链接文件可以用于数据恢复 防止数据误删除(无法防止文件误修改)
        完整备份数据使用cp进行备份

    软连接:
    概念:
    01. 数据信息快捷方式
    创建: ln -s /oldboy/oldboy.txt  /oldboy/oldboy_hard_lind.txt
    特点: 
    01. 源文件删除, 链接文件依然失效
    02. 软链接创建成功, 不会占用新的block, 会占用新的inode
    03. 软链接对目录可以进行处理, 可以创建软链接目录
    
    作用:
    01. 方便开发人员调取系统环境数据
  • 面试题:在查看一个目录时,硬链接数表示什么意思?
# ll -id /etc/
    67108929 drwxr-xr-x. 83 root root 8192 Oct 11  2020 /etc/
    解:
    01. 硬链接概念
    02. 解释此题硬链接数为什么是83
        在/etc目录中有81个子目录 

补充: 根据硬链接文件inode号码恢复数据
    find / -type f -inum 3213

系统正则符号概念

1) 系统基础符号 
       基础符号系列: 
       #: 
       a 表示注释信息
       b 表示登录用户信息  (root用户登录 提示符#)
       $:
       a 表示登录用户信息  (普通用户登录 提示符$)
       b 表示调取变量信息  $oldboy
       c 表示调取列信息    awk '{print $1}' /oldboy/oldboy.txt
       !:
       a 表示强制意思      :wq! :q!
       b 表示取反操作      find /oldboy -type f ! -path /oldboy/oldboy01*/
       c 用于调取历史命令  !历史命令信息
       |: 将前一个命令执行的结果,交给后面命令处理
       find  /oldboy -type f |xargs (忽略别名)rm
  • 练习:找出/oldboy下面所有.txt结尾的文件, 并进行压缩 将压缩文件保存到/oldboy目录中
环境准备:
       mkdir /oldboy 
       touch /oldboy/oldboy{01..10}.txt
       touch /oldboy/oldboy{01..10}.jpg

方法一:
       find /oldboy -type f -name "*.txt"|xargs tar zcvf /oldboy/oldboy.tar.gz

       方法二:
       tar zcvf /oldboy/oldboy.tar.gz  `find /oldboy -type f -name "*.txt"`

       方法三:  find命令 + 用法
       [root@oldboyedu oldboy] find /oldboy -type f -name "*.txt" -exec tar zcvf /oldboy/oldboy.tar.gz {} +;
       tar: Removing leading `/' from member names
       /oldboy/oldboy01.txt
       /oldboy/oldboy02.txt
       /oldboy/oldboy03.txt
       /oldboy/oldboy04.txt
       /oldboy/oldboy05.txt
       /oldboy/oldboy06.txt
       /oldboy/oldboy07.txt
       /oldboy/oldboy08.txt
       /oldboy/oldboy09.txt
       /oldboy/oldboy10.txt

      '方法四: 
       tar -zvcf /oldboy/oldboy.tar.gz --exclude=*.jpg  /oldboy/
       方法五:
       ll /oldboy/|grep -o 'oldboy.*.txt$'|xargs tar zcvf /oldboy/oldboy.tar.gz
       ls /oldboy/*.txt|xargs tar zcvf /oldboy/oldboy.tar.gz
  • 引号符号系列
       '' 单引号: 所见即所得
       "" 双引号: 会将部分符号信息做解析处理 $ `` $()
          没引号: 和双引号功能类似 识别序列信息
       `` 反引号: 等价于$()  将命令执行的结果交给外面的命令处理
  • 路径符号系列
       ~  : 快速切换到用户家目录      cd ~/cd
       -  : 快速切换到上一次所在路径  cd -/cd $OLDPWD
       .  : 切换到当前所在路径        cd .
       .. : 切换到一级所在路径        cd .. / cd ../../
  • 定向符号系列
       1>/>     : 标准输出重定向
       1>>/>>   : 标准输出追加重定向
       2>       : 错误输出重定向
       2>>      : 错误输出追加重定向
       错误和正确信息统一放置在一个文件:
       echo oldboy >>/oldboy/ok.log 2>&1
       echo oldboy &>>/oldboy/ok.log
       <        : 标准输入重定向
       tr 'a-z' 'A-Z' >/oldboy.txt<
  • 逻辑符号系列
       &&:  表示前一个命令执行成功,再执行后面命令
       mkdir /oldboy && touch /oldboy/oldboy01.txt
       ||:  表示前一个命令执行失败,在执行后面命令
       rmx  /oldboy || touch /oldboy/oldboy02.txt
       
       [root@oldboyedu ~] echo oldboy &>/tmp/ok.log && echo ok || echo failed
       ok
       [root@oldboyedu ~] ech oldboy &>/tmp/ok.log && echo ok || echo failed
       failed

你可能感兴趣的:(day16-操作系统文件属性/正则符号)