day 14 操作系统文件属性

一.文件属性组成部分

[root@yzg23:50 ~]# ll -i /etc
total 1100
101019846  d    rwxr-xr-x.      3 root root       101  Jul  4 16:57 abrt
33874352   -r   w-r--r--.       1 root root       16   Jul  4 17:08 adjtime
33607020   -r   w-r--r--.       1 root root     1518   Jun  7  2013 aliases
33554501   -r   w-r--r--.       1 root root    12288   Jul  4 17:29 aliases.db
67215661   d    rwxr-xr-x.      2 root root      236   Jul  4 16:59 alternatives
      1    2       3            4    5   6      7            8           9
  1.文件inode号码      inode(index  node) 相当于书的目录
  2.文件类型信息       文件类型和扩展名无关
  3.文件权限信息       r(全写read  读的意思) w(write  写的意思)x  (execute  可执行的意思  setup.exe)
  4.文件硬链接数       相当于超市的多个们   一个门代表一个硬链接数
  5.文件所属用户(属主)         监护人       管理数据最高权力
  6.文件所属组用户(属组)       亲人         管理数据信息
     还有一个其他 用户           隔壁老王     管理数据信息 (权力最低)
  7.文件容量大小     默认显示的是字节信息   ls -lh  人类可读命令
  8.文件时间信息         文件修改时间信息
  以上信息都属于文件属性信息
  9.文件名称信息
文件名称信息不属于文件属性

二.文件属性详细说明--文件类型

文件类型说明:文件类型查看命令 :file
Linux系统中一切皆是文件

普通文件
   普通文件一般用  ‘-’  来表示  以下文件都是普通文件
   1.文本文件:oldboy.txt:ASCII text
   2.命令文件(二进制文件):ELF 64-bit  LSB executable
   3.脚本文件(.sh .py):test.sh: Bourne-Again shell script, ASCII text executable
   4.数据文件(压缩文件):gzip compressed data, from Unix
目录文件一般用‘d’表示 例如directory
连接文件一般用‘l’表示 软连接文件(快捷方式)
设备文件
      一般有两种表示方法 一种是‘c’表示   
      表示的是字符流文件   character     查看方法 /dev/urandom    里面会产生大量的字符信息
      还有一种表示方法是‘b’  快设备文件     block    存储设备文件信息
套接字文件 一般用‘s’表示 socket(网络通讯 网络开发)

利用扩展名标识文件类型
.sh      脚本文件
.py      python脚本文件
.log     日志文件
.conf    配置文件
.tar.gz  压缩文件
解锁文件命令:
    file        查看文件类型
    which    查看命令文件路径信息
    whereis  显示命令路径信息和相关其他文件(帮助手册文件)路径信息
    locate     查询文件(任意)所在路径信息      默认centos里没有这个命令   需要先安装再使用  但是找不到这个软件  需要先查询这个命令在那个文件库下面:yum provides locate    然后安装一下这个文件库   yum install -y mlocate   但是安装完必须要更新一下数据库(updatedb),要不然这个命令没法使用


如何查看文件进程号码ps ef |grep+要查询的进程号

find ------擅长从系统中查找文件
    根据文件名称查找文件 -iname不区分大小写
     #find  找寻数据路径   查找文件内容
     find   找寻数据路径  条件是根据名字找(name)  要是一个文件名记不清楚了   可以用*匹配剩下知道的文件名也可以查找 
    find+找寻路径+iname +找寻文件名---是忽略大小写查找
根据文件类型查找文件 -type
     [root@oldboyedu ~]# find /opt -type f
            /opt/oldboy.sh
            /opt/Oldboy.txt
            [root@oldboyedu ~]# find /opt -type f  -name "oldboy.sh"   --- 多个查找条件是并且关系
            /opt/oldboy.sh
文件类型有什么:man find -type
    f (file)    找寻普通文件
    d (directory)   找寻目录文件
    l (link)        找寻软连接文件
    c             字符流设备文件
    b             块设备文件
    s             套接字文件
   根据目录层级查找文件
  find +要查找的目录  -maxdepth 1 -type f -name "要查找的文件名"
  根据指定目录最大层级查找数据
   find +要查找的目录  -mindepth 1 -type f -name "要查找的文件名"

-maxdepth 后面加上参数数字几就表是从一层开始查找到参数几层结束
-mindepth后面加上参数几就表示从第几次开始查找到最后一层结束
根据指定目录文件大小查找数据 -size
find / -type f -size + 50M ---大于50M的文件找出来
find / -type f -size 50M --- 等于50M的文件找出来
find / -type f -size -50M --- 小于50M的文件找出来

            查找文件根据文件大小信息,文件尺寸单位
            `b'    for 512-byte blocks (this is the default if no suffix is used)
            `c'    for bytes                                 ******
            `w'    for two-byte words
            `k'    for Kilobytes (units of 1024 bytes)       ******
            `M'    for Megabytes (units of 1048576 bytes)    ******
            `G'    for Gigabytes (units of 1073741824 bytes) ******
tree 显示目录层级
    显示指定目录层级结构信息      加上一个-L显示几层就加上一个数字几  
    举例:
            显示指定目录层级结构信息
            [root@oldboyedu ~]# tree -L 1 /oldboy   --- 只查看/oldboy目录下面的数据信息,不看子目录中数据信息
            /oldboy
            ├── oldboy01
            ├── oldboy02
            └── oldboy03
            只显示目录层级中目录信息
            [root@oldboyedu ~]# tree -L 1 /oldboy
            /oldboy
            ├── a.log
            ├── b.log
            ├── c.log
            ├── oldboy01
            ├── oldboy02
            └── oldboy03
            3 directories, 3 files
            [root@oldboyedu ~]# tree -L 1 -d /oldboy    --- 只显示目录结构    
            /oldboy
            ├── oldboy01
            ├── oldboy02
            └── oldboy03
        -d表示只看某个目录下的目录信息  不看文件信息
tar 压缩命令
    tar +参数 +生成压缩包文件(写上路径信息)   +将什么文件进行压缩
   tar vczf /opt/service.tar.gz /tmp/services
            z    --- 压缩文件的方式 gzip
            c    --- 创建一个压缩包文件
            v    --- 详细显示压缩的过程
            f    --- 指定压缩包的路径(必须写在所有参数最后)
            检查压缩包数据
            不解压直接检查:
            tar tf /opt/service.tar.gz
            t    --- 不解压,检查压缩包里面内容
            解压检查数据
            tar xvf /opt/service.tar.gz
            x    --- 解压指定压缩包
            指定解压数据路径
            tar xf /opt/oldboy03.tar.gz -C /opt/
            C    --- 指定解压缩数据路径

反引号的用法 :就是把反引号里面的命令先执行然后再交给其他命令执行举例说明:rpm -qf 'which'cp有点类似|命令 |命令是把前面处理结果交给后面执行

tr替换还可以过滤筛选
     tr -cd 'a-Z' < /dev/urandom  |head -c 5 表示 把dev目录下的显示字符的文件(urandom)交给tr执行
tr加上参数 就表示筛选出文件中'a-Z'的字符然后显示  出来然后再交给管道(|)后面命令执行   
执行的是就显示前5个字符
 -d      将匹配的信息排除掉
 -c      将排除的信息显示出来
head -c   去除指定信息中前几个字符
也可以把筛选出来的东西放到文件里:

tr -cd 'a-Z' < /dev/urandom |head -c 5 > /tmp/oldboy.txt
urandom 生成随机字母信息

排除指定目录信息,不要进行查找:
  方法一: find /oldboy/ ! -path "/oldboy/oldboy02*" -type f -name "*.txt"
 方法二: find /oldboy/ -path "/oldboy/oldboy02" -prune -o  -type f -name "*.txt" -print
   将指定数据信息找出来,批量复制数据信息到指定目录/删除数据
   批量删除数据命令:
   find /oldboy/  -type f -name "*.txt"|xargs rm
   批量复制数据命令:
   find /oldboy/  -type f -name "*.txt"|xargs -i cp {} /tmp
   find /oldboy/  -type f -name "*.txt"|xargs cp -t /tmp
   
   xargs  --- 分组命令/整合命令
   [root@oldboyedu ~]# echo {01..10}|xargs -n2
   01 02
   03 04
   05 06
   07 08
   09 10
   [root@oldboyedu ~]# echo {01..10}|xargs -n3
   01 02 03
   04 05 06
   07 08 09
   10
   [root@oldboyedu ~]# echo {01..10}|xargs -n4
   01 02 03 04
   05 06 07 08
   09 10

   [root@oldboyedu ~]# seq -w 10
   01
   02
   03
   04
   05
   06
   07
   08
   09
   10
   [root@oldboyedu ~]# seq -w 10|xargs
   01 02 03 04 05 06 07 08 09 10

你可能感兴趣的:(day 14 操作系统文件属性)