zoukankan      html  css  js  c++  java
  • 文件类型及属性

    文件的类型和属性

    [root@CentOS7 ~]# ls -li
    total 16
    50993210 drwxr-xr-x. 2 root root   6 Jul 15 16:24 backup
    33575126 -rw-r--r--. 1 root root  28 Jul 14 21:24 oldboy.txt
    33574981 -rw-r--r--. 1 root root 990 Jul 15 08:41 passwd
    33575132 -rw-------. 1 root root 672 Jul 15 16:08 sshd_config
    50993207 drwxr-xr-x. 2 root root   6 Jul 15 11:12 test
    33575121 -rw-r--r--. 1 root root  26 Jul 15 11:06 test.txt

    第一列 : 50993210        #inode号 索引节点

    第二列 :-rw-r--r--.     #文件的类型和权限

    第三列 :2               #文件的硬链接的数量

    第四列 :root            #文件的属主

    第五列 :root            #文件的属组

    第六列 :6               #文件的大小

    第七列 : Jul 15 16:24    #文件的创建时间或最后的修改时间

    第八列 :backup          #文件的名称   不属于文件的属性


    # du 查看目录的大小
    选项:
         -s       #显示大小
     
         -h       #以B MB GB的格式显示大小
     
    [root@CentOS7 ~]# du -sh /etc
    32M /etc

    #文件类型
    drwxr-xr-x.
    -rw-r--r--.
    lrwxrwxrwx
    crw-rw-rw-
    srw-rw-rw-
    prw-------.

    #第一个字符为文件的类型信息
    #第二个到第10个 文件权限

    #文件类型的种类:
    - #普通文件   二进制 日志 文本 脚本

    d #目录

    l #软链接文件  

    b #块设备   磁盘 硬盘 磁盘分区 镜像 光盘

    c #字符设备  
       
      s #套接字文件 socket文件
       
      p #管道文件  
       
       
    #   stat 详细显示文件的属性信息
    选项:
     -c     #指定格式输出   %a 以八进制显示文件的权限
     
    [root@CentOS7 ~]# stat passwd
    File: ‘passwd’
    Size: 990       Blocks: 8         IO Block: 4096   regular file
    Device: 803h/2051d Inode: 33574981   Links: 1
    Access: (0644/-rw-r--r--) Uid: (    0/   root)   Gid: (    0/   root)
    Context: unconfined_u:object_r:admin_home_t:s0
    Access: 2020-07-15 08:41:17.988912890 +0800
    Modify: 2020-07-15 08:41:07.158913382 +0800
    Change: 2020-07-15 08:41:07.158913382 +0800
    Birth: -

    #-c     #指定格式输出   %a 以八进制显示文件的权限
    [root@CentOS7 ~]# stat -c %a passwd
    644

    # file   详细显示文件的信息
    [root@CentOS7 ~]# file passwd
    passwd: ASCII text     #标准文件

    [root@CentOS7 ~]# file /etc
    /etc: directory        #目录

    [root@CentOS7 ~]# file /bin/ls
    /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=ceaf496f3aec08afced234f4f36330d3d13a657b, stripped

    [root@CentOS7 ~]# ll /bin/ls
    -rwxr-xr-x. 1 root root 117680 Oct 31  2018 /bin/ls   #可执行文件

    [root@CentOS7 ~]# file /etc/grub2.cfg       #symbolic link 符号链接
    /etc/grub2.cfg: symbolic link to `../boot/grub2/grub.cfg'

    [root@CentOS7 ~]# file /dev/log
    /dev/log: socket

    [root@CentOS7 ~]# file /run/systemd/initctl/fifo
    /run/systemd/initctl/fifo: fifo (named pipe)

    后缀名:
    Linux中对后缀没有任何的要求, 系统存在一些带后缀名的文件,只是为了方便程序人员的使用  
    Linux中是区分大小写的  
    .txt

    .log

    .xml

    .conf

    .cnf

    .html

    .php

    .sh

    .py

    .mp3

    .jpg

    .png

    .tar

    .tar.gz

    .gz

    .zip

     

    链接文件

    文件的组成:
    元数据: metadata 属性信息   大小 时间 属主 属组 权限 inode   索引节点  

    用户数据: user data 数据块   硬盘存放真实数据的地方     block  


    文件分为硬链接文件 hard link 和软链接文件或者符号链接   symbolic link  == soft link


    软链接文件:

    概念: 就是相当于Windows上面的快捷方式   里面存放的是文件的路径 及可以执行这个文件

    软链接文件和源文件属于不同的文件 inode是不一样

    [root@CentOS7 ~]# ll -i /etc/sysconfig/selinux
    134477906 lrwxrwxrwx. 1 root root 17 Jul  6 02:14 /etc/sysconfig/selinux -> ../selinux/config
    [root@CentOS7 ~]# ll -i /etc/selinux/config
    223842 -rw-r--r--. 1 root root 543 Jul  6 02:14 /etc/selinux/config


    创建软链接通过 ln命令
    选项:
    -s #创建软链接

    ln  -s 源文件     链接文件

    [root@CentOS7 ~]# ln -s /etc/sysconfig/network-scripts/ifcfg-eth0 /root/eth0
    [root@CentOS7 ~]# ll
    total 0
    lrwxrwxrwx. 1 root root 41 Jul 15 20:01 eth0 -> /etc/sysconfig/network-scripts/ifcfg-eth0


    应用场景:
    1. 企业的代码发布 Jenkins   秒级发布  

    2. 软件版本升级

    3. 不方便移动的目录或者文件

    [root@CentOS7 ~]# mkdir   nginx-1.17.0
    [root@CentOS7 ~]# ll
    total 0
    drwxr-xr-x. 2 root root 6 Jul 15 19:59 nginx-1.17.0
    [root@CentOS7 ~]# mkdir nginx-1.18.0
    [root@CentOS7 ~]# ll
    total 0
    drwxr-xr-x. 2 root root 6 Jul 15 19:59 nginx-1.17.0
    drwxr-xr-x. 2 root root 6 Jul 15 19:59 nginx-1.18.0

    [root@CentOS7 ~]# ll
    total 0
    lrwxrwxrwx. 1 root root 41 Jul 15 20:01 eth0 -> /etc/sysconfig/network-scripts/ifcfg-eth0
    drwxr-xr-x. 2 root root  6 Jul 15 19:59 nginx-1.17.0
    drwxr-xr-x. 2 root root  6 Jul 15 19:59 nginx-1.18.0
    [root@CentOS7 ~]# ln -s nginx-1.17.0/   nginx
    [root@CentOS7 ~]# ll
    total 0
    lrwxrwxrwx. 1 root root 41 Jul 15 20:01 eth0 -> /etc/sysconfig/network-scripts/ifcfg-eth0
    lrwxrwxrwx. 1 root root 13 Jul 15 20:04 nginx -> nginx-1.17.0/
    drwxr-xr-x. 2 root root  6 Jul 15 19:59 nginx-1.17.0
    drwxr-xr-x. 2 root root  6 Jul 15 19:59 nginx-1.18.0
    [root@CentOS7 ~]# rm -f nginx && ln -s nginx-1.18.0/ nginx #版本升级
    [root@CentOS7 ~]# ll
    total 0
    lrwxrwxrwx. 1 root root 41 Jul 15 20:01 eth0 -> /etc/sysconfig/network-scripts/ifcfg-eth0
    lrwxrwxrwx. 1 root root 13 Jul 15 20:04 nginx -> nginx-1.18.0/
    drwxr-xr-x. 2 root root  6 Jul 15 19:59 nginx-1.17.0
    drwxr-xr-x. 2 root root  6 Jul 15 19:59 nginx-1.18.0


    [root@CentOS7 ~]# rm -f nginx && ln -s nginx-1.17.0/ nginx #版本回退  
    [root@CentOS7 ~]# ll
    total 0
    lrwxrwxrwx. 1 root root 41 Jul 15 20:01 eth0 -> /etc/sysconfig/network-scripts/ifcfg-eth0
    lrwxrwxrwx. 1 root root 13 Jul 15 20:07 nginx -> nginx-1.17.0/
    drwxr-xr-x. 2 root root  6 Jul 15 19:59 nginx-1.17.0
    drwxr-xr-x. 2 root root  6 Jul 15 19:59 nginx-1.18.0


    && #前面的命令执行成功 才会执行后面的命令

    || #前面的命令执行失败,才会执行后面的命令

    软链接的特点:

    概念

    创建

    跟源文件是不同类型的文件,inode是不一样的

    软链接可以对目录创建 也可以跨文件系统

    rm  -f

    删除软链接文件对源文件没有任何影响

    删除源文件,软链接存在,但是会失效   出现 红底白字闪烁状  



    硬链接:

    概念: 多个文件的数据指向同一个数据块,多个不同的入口,inode是相同的,这样的文件互为硬链接

    防止文件被误删除  

    创建

    ln命令直接创建   只能对文件创建 不能对目录创建  

    ln   源文件   硬链接文件

    [root@CentOS7 ~]# cp /etc/hosts   ./
    [root@CentOS7 ~]# ll
    total 4
    lrwxrwxrwx. 1 root root  41 Jul 15 20:01 eth0 -> /etc/sysconfig/network-scripts/ifcfg-eth0
    -rw-r--r--. 1 root root 158 Jul 15 20:18 hosts
    lrwxrwxrwx. 1 root root  13 Jul 15 20:07 nginx -> nginx-1.17.0/
    drwxr-xr-x. 2 root root   6 Jul 15 19:59 nginx-1.17.0
    drwxr-xr-x. 2 root root   6 Jul 15 19:59 nginx-1.18.0
    [root@CentOS7 ~]# ln hosts   hosts_hard
    [root@CentOS7 ~]# ll
    total 8
    lrwxrwxrwx. 1 root root  41 Jul 15 20:01 eth0 -> /etc/sysconfig/network-scripts/ifcfg-eth0
    -rw-r--r--. 2 root root 158 Jul 15 20:18 hosts
    -rw-r--r--. 2 root root 158 Jul 15 20:18 hosts_hard
    lrwxrwxrwx. 1 root root  13 Jul 15 20:07 nginx -> nginx-1.17.0/
    drwxr-xr-x. 2 root root   6 Jul 15 19:59 nginx-1.17.0
    drwxr-xr-x. 2 root root   6 Jul 15 19:59 nginx-1.18.0
    [root@CentOS7 ~]# ll -i
    total 8
    134317677 lrwxrwxrwx. 1 root root  41 Jul 15 20:01 eth0 -> /etc/sysconfig/network-scripts/ifcfg-eth0
    134317704 -rw-r--r--. 2 root root 158 Jul 15 20:18 hosts
    134317704 -rw-r--r--. 2 root root 158 Jul 15 20:18 hosts_hard


    [root@CentOS7 ~]# cat hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    [root@CentOS7 ~]# cat hosts_hard
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    [root@CentOS7 ~]# echo "123" >>hosts_hard
    [root@CentOS7 ~]# cat hosts_hard
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    123
    [root@CentOS7 ~]# cat hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    123


    删除源文件或者硬链接文件都没有什么影响   只有删除源文件以及所有对应的硬链接文件,文件实体才会被删除



    企业面试题:软链接和硬链接的区别?

    1. 从概念  
    #软链接 跟源文件是不同类型的文件,inode号是不一样的
    #硬链接 多个文件的数据指向同一个数据块,多个不同的入口,inode号是相同的
    2. 从创建方式
    #ln -s是创建的软链接
    #ln 可以直接创建硬链接
    3. 从创建对象
    #软链接可以对文件,目录创建也可以跨文件系统创建
    #硬链接只能对文件创建
    4. 从删除
    #删除软链接对源文件没有任何影响
    #删除源文件或者硬链接文件都没有什么影响   只有删除源文件以及所有对应的硬链接文件,文件实体才会被删除
  • 相关阅读:
    [工作中的设计模式]中介模式模式Mediator
    [工作中的设计模式]责任链模式chain
    [工作中的设计模式]迭代子模式Iterator
    [工作中的设计模式]组合模式compnent
    TI IPNC Web网页之流程分析
    TI IPNC Web网页之GoDB开发环境
    安装ubuntu时将boot目录单独挂载的意义
    ubuntu添加自定义vga输出分辨率
    GCC编译默认的头文件搜索路径
    设置搜狗输入法在任何时候按左右两侧的shift激活
  • 原文地址:https://www.cnblogs.com/backz/p/13397121.html
Copyright © 2011-2022 走看看