zoukankan      html  css  js  c++  java
  • 🍖软连接与硬链接

    引入

    1.硬链接与软连接

    Linux 系统中有软链接和硬链接两种特殊的 "文件"
    

    2.inode是什么

    ⛅要解释清楚两者的区别和联系需要先说清楚 linux 文件系统中的 inode 这个东西

    ⛅当划分磁盘分区并格式化的时候,整个分区会被划分为两个部分,即inode区data block(实际数据放置在数据区域中)

    ⛅这个inode即是(目录、档案)文件在一个文件系统中的唯一标识,需要访问这个文件的时候必须先找到并读取这个 文件的 inode

    ⛅Inode 里面存储了文件的很多重要参数,其中唯一标识称作 Inumber

    ⛅ 其他信息: 创建时间(ctime)、修改时间(mtime) 、文件大小、属主、归属的用户组、读写权限、数据所在block号等信息。

    ⛅查看一个文件的元数据: "# stat [文件名]"

    一.软连接

    1.什么是软链接

    可以看成是 Windows 中的快捷方式, 可以让你快速链接到目标文件或目录, 它找到的是原文件名, 通过原文件名再找到真实的数据, 它自身有 inode

    2.语法

    ln -s [源文件/目录路径] [软连接放置的路径及名字]
    #设置连接时源文件要使用绝对路径, 不然链接会变红,无效
    

    3.软连接示例

    • 文件软连接
    在 "/tmp" 目录下创建 "/root" 目录下的 "a.txt" 软连接
    

    • 目录软连接
    在 "/tmp" 目录下创建 "/root" 目录下的 "/song" 的软连接
    

    二.硬链接

    1.什么是硬链接

    它透过文件系统的 inode 来产生新的文件名, 注意不是产生新的文件, 换而言之, 就是一个文件使用了多个别名, 这个别名与源文件名都指向源文件的 inode

    2.语法

    ln [源文件路径] [硬连接放置的路径及名字]
    #目录不能创建硬链接
    #不能跨分区系统创建硬链接
    

    3.硬链接示例

    • 文件硬链接
    在"/tmp"目录下创建"/root"目录下的"a.txt"的硬链接
    

    • 无法创建目录硬链接

    三.硬链接与软连接的区别

    ln -s 创建软连接, ln 创建硬链接

    目录不能创建硬链接, 且不能跨分区系统创建

    软连接支持文件和目录, 且能跨分区系统, 常用

    硬链接文件与源文件 inode 相同, 而软连接是不同的

    删除软连接文件和硬链接文件, 对源文件没有任何的影响

    删除源文件, 软连接失效, 硬链接无影响(还可以访问内容)

    删除源文件和硬链接, 整个文件会被真正的删除

    四.软连接, 硬链接与 拷贝 的区别

    1.软连接

    软连接建立的链接文件与源文件并不是同一个文件, 就是一个快捷方式, inode号也不同

    2.硬链接

    硬链接实际上是文件的一个别名, 链接文件和源文件实际上是同一个文件, 修改源文件或者硬链接文件, 相互都会改变

    3.拷贝

    复制源文件, 产生一个全新的文件, 与源文件没有关系了, 修改新文件内容与源文件无关

    4.通过 ls -i 来查看 inode

    查看 inode 可判断是否是同一文件

    五.磁盘空间问题

    1.磁盘满了?

    通常指两个方面

    • inode 号用完了
    • 磁盘空间用完了
    • 而通常情况下 inode号是够用的, 磁盘空间经常不够用

    2.当指定磁盘空间满了怎么办?

    • df 查看磁盘空间及 inode号使用情况

    • 假设 /boot 这个目录关联的磁盘 /dev/sda2空间使用已被使用100%
    • 当你创建文件和写文件的时候都无法操作
    • 但是有一些软件或者配置必须在 /boot/data 下才能找到(或者"/boot"下的其他目录)

    3.解决方案

    • 首先插上一块新的磁盘, 查看磁盘是否存在

    • 不格式化(制作文件系统)的话可能会报错

    • 格式化新磁盘(制作文件系统) mkfs.xfs /dev/sdb / mkfs.ext4 /dev/sdb

    • 然后让 /boot/data关联(挂载)上去 mount /dev/sdb /boot/data

    • 之后就可以在 /boot/data 里面写文件了, 路径还是这个路径
  • 相关阅读:
    IOS和Android支持的音频编解码
    IOS XIB Cell自适应高度实现
    IOS竖屏应用单个页面横屏的解决办法
    FMDB读取Datetime类型值为1970的问题
    一些IOS开发中的小技巧
    IOS的一些小技巧
    Static块详解
    Hadoop学习笔记3---安装并运行Hadoop
    Hadoop学习笔记2---配置详解
    同一账户在同一时间 只能登陆一次
  • 原文地址:https://www.cnblogs.com/songhaixing/p/13883777.html
Copyright © 2011-2022 走看看