• 软链接与硬链接


    软链接

    相当于windows下的一个快捷方式,可以是文件也可以是文件夹

    ln -s /mnt/mtd_app/ts ts
    //就会在该目录下生成一个软链接
    

    硬链接

    linux下文件的存储是通过索引节点号来存储的,硬链接相当于为文件增加了一个索引节点号
    相当于另一个访问文件的路径(感觉有点像指针)
    因此只删除其中一个链接并不会删除文件,只有所有的索引节点号都删除后文件才会被真正的删除

    注意:硬链接不允许给文件目录建立;只有超级用户才有建立硬链接权限

    特点以及不同

    • 两种链接的方式都具有同步性,即源文件更改那么相应的链接也会更改(跟windows相同啊)
    • 两种方式都占用很少的磁盘空间,具体的方式自己还需要研究ibm的文档
    • 软链接情况下,源文件挪位置了,软链接就无法使用了;硬链接文件挪位置了也可以访问到文件(相当于重新生成了一份文件)

    原理内容

    参考ibm的学习资料

    Linux的文件与目录

    • Unix是由进程和文件构成的
      在 UNIX 系统中,操作系统为磁盘上的文本与图像、鼠标与键盘等输入设备及网络交互等 I/O 操作设计了一组通用 API,使他们被处理时均可统一使用字节流方式。换言之,UNIX 系统中除进程之外的一切皆是文件
    • Linux的目录结构
      Markdown
    • 设备当做文件
      Linux把设备当做文件进行处理

    处理方法
    输入设备信息所在目录: /proc/bus/input/devices
    Markdown
    打开设备的方法(暂时没看)
    Markdown

    Linux文件

    • Linux文件系统
      Markdown
      实现这些文件系统的基础就是Linux VFS(虚拟文件系统)

    • 由两个部分组成,用户数据元数据
      用户数据 文件真实的数据内容
      元数据 文件的属性:大小,所有者,使用权限,索引节点号等等信息

    • 抽象了文件系统的四个基本概念
      1.文件:实际的数据块
      2.目录项:包含文件名和指向的inode
      3.索引节点:包含文件信息以及数据块指针
      4.挂载点

    • 结构
      Markdown
      Markdown

    利用文件名找到索引节点号.------->存放在目录项中
    利用索引节点号可以查询到文件的信息 和 文件数据块的指针.------->存放在索引节点表中
    (具体什么结构,参照保存的资料)

    硬链接与软链接实际结构

    Markdown

    硬链接是在目录项中添加一个指向inode的文件名
    软链接是普通的文件,只是内容存放的是文件名或者文件夹名

    所以,才有了许多的不同
    1.硬链接即使原本的文件名改变了,硬链接依旧可以访问到具体文件;软链接下,如果文件名改变,软链接就会失效
    2.硬链接由于是存放的是文件的文件名,所以不能对目录生成硬链接;软链接存的可以是文件也可以是目录,所以都可以生成链接

    相关的命令

    文件命令

    stat filename
    Markdown

    硬链接

    ln oldfile newfile

    软链接

    ln -s oldfile newfile

    其他命令

    1.查看当前系统挂载的文件系统的类型
    df -i --print-type
    Markdown
    2.tree命令
    tree . -F -L 2

    -F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
    相当于包含很多其他选项,也包含-l符号链接指向选项
    -L 2 显示的层级
    -l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
    Markdown

  • 相关阅读:
    C3P0连接池详解及配置
    解决a different object with the same identifier value was already associated with the session错误
    sudo su 提示没有配置JDK environment
    MySQL 5.6 双机热备
    如何用myeclispe远程调试tomcat
    Incorrect string value: '\xF0\xA1\xA1\x92' for column 'herst' at row 1
    Mysql 慢查询设置
    Mysql的主从数据库没有同步的解决办法
    新的启程
    ASP.NET程序中常用的三十三种代码
  • 原文地址:https://www.cnblogs.com/sslblog/p/6862042.html
Copyright © 2020-2023  润新知