zoukankan      html  css  js  c++  java
  • Centos常用命令之:ln

    在linux中[ln]这个命令用来创建连接文件。

    共有两种连接文件:一种是类似与Windows的快捷方式(软链接),另一种就是通过文件系统的inode来产生的新的文件名(硬链接)。

    这里解释下什么叫inode。

    我们在讲解[ls]命令的时候,说过[-i]这个选项可以查看到该文档的inode。

    其中最前面一列的数字就表示inode,它保存了该文档很多信息,其中有一项就是该文件真正内容的指向。

    在linux的文件系统中,我们上面看到的Desktop,Documents这些个文件夹中其实并没有真正的保存数据,而只是一个文件档的名字而已。

    真正的数据是保存在block中。

    这个文件档的inode中记录了该文档的很多信息,包括指向真实保存数据的block信息。

    硬链接

    由于硬链接有不可以垮文件系统,不能为目录创建等限制,因此使用较少。

    创建命令 ln 文件名 新连接名

    实例

    [fuwh@localhost stu]$ ll -i
    总用量 4
    391838 -rw-rw-r--. 1 fuwh fuwh 58 7月  24 19:11 test.txt
    [fuwh@localhost stu]$ ln test.txt test2.txt
    [fuwh@localhost stu]$ ll -i
    总用量 8
    391838 -rw-rw-r--. 2 fuwh fuwh 58 7月  24 19:11 test2.txt
    391838 -rw-rw-r--. 2 fuwh fuwh 58 7月  24 19:11 test.txt
    [fuwh@localhost stu]$

    可以看到这时候,两个文档的inode是一样的,而且连接数也从1变成了2。

    这时候,不论修改哪个文档,内容都会一起变。因为他们都是指向同一个block。

    但是当你删掉了其中一个文档的时候,是对另一个没有影响。

    软链接

    这个就类似于Windows的快捷方式,使用较多。

    使用方式:ln [-sf] 源文件 目标文件

    选项:-s 就表示创建软链接了,不加的话就是创建硬链接

         -f 表示存在的时候删除在创建

    实例

    可以看到,新创建的软连接和源文件的inode是不一样的。

    需要注意的是,新链接的大小为5,这刚好就是源文件名的5个字符。而他的名字中,也正确的显示了指向哪个文件。

    因为在软链接中,只是保存了指向的文件的名字而已。当编辑软链接这个文件的时候,首先通过指向的文件,找到指向的文件,

    然后通过指向文件的inode来找到实体存放的inode,所以我们编辑软链接文件的时候,实际上修改的就是真是存放的block中的内容。

  • 相关阅读:
    python模拟shell
    10.LIKE 操作符
    9.TOP 子句--mysql limit
    8.INSERT INTO 语句 UPDATE 语句
    7.ORDER BY 子句
    6.AND & OR 运算符
    5.WHERE 子句
    4.SELECT DISTINCT 语句
    3.SELECT 语句
    2.sql分类
  • 原文地址:https://www.cnblogs.com/zerotomax/p/7232300.html
Copyright © 2011-2022 走看看