• linux 文件属性


    1.  文件类型

    - 普通文件
    d 目录文件
    l 链接文件
    b 块设备文件
    c 字符型设备文件
    s socket文件
    p 管道类型文件

    块设备文件主要是指慢速设备,比如hd硬盘,数据主要是分块存储,所以是块设备;在linux中,设备都会被抽象为一个文件,比如硬盘:

    brw-rw----   1 root disk      8,   0  1月 25 14:53 sda
    brw-rw----   1 root disk      8,   1  1月 25 14:53 sda1
    brw-rw----   1 root disk      8,   2  1月 25 14:53 sda2
    brw-rw----   1 root disk      8,   5  1月 25 14:53 sda5
    brw-rw----+  1 root cdrom    11,   0  1月 25 14:53 sr0

    sda   是指整块硬盘, 我电脑里只有一块硬盘,如果还有第二块硬盘,那么会抽象为sdb

    sda1   是指硬盘一个分区

    那么既然硬盘是一个文件,那么我可以往该文件里写入内容吗? 肯定是可以的,但是千万别尝试,这样会损坏整块硬盘的数据,不信你试试,我不敢:

    cat /etc/passwd > /dev/sda        #千万别执行

    那在windows中可以用ghost对硬盘做镜像,那在linux中是不需要使用其它工具的,先挂在一块硬盘到/mnt目录

    #dd if=/dev/sda of=/mnt/sda.img

    只需一条命令即可对整块硬盘做镜像了。如果我只想对其中一个分区做镜像,那if=/dev/sda1就行了。

    2.  权限

    # ll
    总用量 20
    drwx------  2 root root 4096  2月 16 12:41 ./
    drwxr-xr-x 23 root root 4096  1月 25 13:53 ../
    -rw-r--r--  1 root root 3106  2月 20  2014 .bashrc
    -rw-r--r--  1 root root  140  2月 20  2014 .profile
    -rw-------  1 root root  626  2月 16 12:41 .viminfo

    我们使用ll命名查看文件目录的时候,前面的rwx------这些就是表示文件的权限,那么到底是什么意思呢

      对应数字 权限
    r 4
    w 2
    x 1 执行

    第一位有的是d, 有的是- ,这是什么意思呢? 

    d  表示这是一个目录文件

    -  表示这是一个普通文件,还记得最开始说的文件类型吗?

    接下来的九个字符则表示该文件或目录的权限了:

    前三位: 文件拥有者的权限

    中间三位: 文件拥有组的权限

    后三位:  其它人的权限

    权限 后面的 1 表示链接数, 然后就是拥有者,拥有组,文件大小,修改时间,文件名称

    一般情况下,linux文件权限 644 ,文件夹权限 755

    3.  权限修改

    chmod u+x  文件名         #u表示拥有者  g表示拥有组  o表示其它用户  a表示所有

    chomd g-x  文件名

    chmod a=rw  文件名       # + ,-, =

    chmod 644 文件名      #使用数字方式修改权限,最常用的,最灵活的

    如果想给目录及目录下所有文件设置权限,使用-R参数

    chomd –R 644 目录

    chown   修改拥有者,同样可以加-R参数

    chgrp    修改拥有组,同样可以加-R参数

    那么问题来了: chmod 046 A   给文件A修改了权限 ,那拥有者对A是什么权限呢?

    一看前三位,没有权限 ,那就没有权限 了。权限不会叠加。

    4. 连接数

    连接数是个什么鬼。这要先从数据在硬盘里怎么存储的说起:

    image

    首先目录文件中存储有a.jpg和inode号,再通过inode找到对应的block,就找到了文件内容。图上a.jpg和b.jpg指向的是同一个inode,那a.jpg和b.jpg实际上是同一个文件,只占用一份存储空间,所以连接数就应该是2.

    如果a.jpg是个空文件,那它还有inode吗?还占用block吗?

    空文件也是有文件信息的,比如权限啊,创建时间啊什么的,这些信息都是存储在inode里的,所以空文件还是有Inode的,但是没有内容,所以不占用block.

    那我要是删除了a.jpg,那b.jpg还在吗?   还在的,删除a.jpg实际上是删掉了a.jpg与inode之间的对应关系,但是b.jpg依然可以访问。这就是硬连接, ln a.jpg  b.jpg   如果这张图片是美女图片,很好看,不想被别人删除,那就可以做硬连接,在其它地方做一个入口,别人删掉一个,还有其它入口可以访问。但要注意的是硬连接是不能跨分区的。

    如果要跨分区,可以使用软连接,软连接是一个全新的文件,相当于windows中的快捷方式。

    stat 文件名     可以查看inode里有什么东西

  • 相关阅读:
    Java 引用传递和值传递
    jenkins 自动化部署 spring boot 项目(多图)
    Mybatis学习笔记,持续更新
    ubuntu 安装并远程连接redis
    ubuntu redis 集群安装,超简单多图细腻操作
    ubuntu16.04 的 使用笔记
    阿里云 ubuntu16.04 下 ftp 的快速应用(包罗疑难问题解决方案)
    k8s的#容器镜像
    kubectl命令出现【The connection to the server localhost:8080 was refused
    CIDR无类别域间路由
  • 原文地址:https://www.cnblogs.com/huangxm/p/5193039.html
Copyright © 2020-2023  润新知