文件链接

    链接文件类型 [l]

    ll stat 查看文件类型

    链接方式分为硬链接和软连接
    1、硬链接:为inode分配多个文件名,通过文件名找到inode,从而读取文件信息
    2、软链接:类似Windows上的快捷方式

    文件 = metadata + data

    inode: 一个指向数据存储位置的指针

    metdata: inode 文件名 等信息

    元数据信息
    [root@test ~]# stat hello
    File: ‘hello’
    Size: 1 Blocks: 8 IO Block: 4096 regular file
    Device: fd00h/64768d Inode: 33575029 Links: 1

    权限 用户ID 组ID
    Access: (0644/-rw-r—r—) userid Uid: ( 0/ root) groupid Gid: ( 0/ root)
    selinux权限
    Context: unconfined_u:object_r:admin_home_t:s0

    时间戳
    Access: 2020-02-06 02:51:04.011007753 -0500
    Modify: 2020-02-06 02:50:51.949787952 -0500
    Change: 2020-02-06 02:50:51.950787970 -0500
    Birth: -

    ln命令:创建链接文件
    Usage: ln [OPTION]… [-T] TARGET LINK_NAME (1st form)
    常见选项:
    -s: 建立软链接文件,默认情况下是硬链接文件
    -f: 强制创建

    [root@test tmp]# ll -i 1.txt #ll列出性详细信息
    16777289 -rw-r—r—. 1 root root 0 Feb 6 06:53 1.txt
    [root@test tmp]# echo “hello” > 1.txt
    输入hello到1.txt文本文件
    [root@test tmp]# ln 1.txt 1_hard.txt #ln创建链接文件
    [root@test tmp]# ln -s 1.txt 1_soft.txt #创建软链接文件
    [root@test tmp]# ll -i #查看incode值
    total 8
    16777289 -rw-r—r—. 2 root root 6 Feb 6 06:53 1_hard.txt
    17256888 lrwxrwxrwx. 1 root root 5 Feb 6 06:55 1_soft.txt -> 1.txt
    16777289 -rw-r—r—. 2 root root 6 Feb 6 06:53 1.txt

    注意:
    1.当我们创建硬链接文件的时候,inode不会发生改变,链接数会加1,同时文件内容相同
    2.当我们创建软链接文件的时候,inode会重新分配,链接数保持为1,同时文件内容相同
    3.链接目的:在节省存储空间的情况下,共享文件
    **

    1. 当源文件内容改变时,软硬链接文件内容都会改变**
      [root@test tmp]# echo “eagles” >> 1.txt
      [root@test tmp]# cat 1_soft.txt && cat 1_hard.txt
      hello
      eagles
      hello
      eagles

    5、当删除源文件时,软链接失效,硬链接正常;硬链接其实和源文件可以说表现上是独立的
    [root@test tmp]# rm 1.txt
    [root@test tmp]# cat 1_soft.txt #软链接失效
    cat: 1_soft.txt: No such file or directory
    [root@test tmp]# cat 1_hard.txt
    hello
    eagles

    硬链接特点:

    1. 无论修改源文件还是硬链接文件,另一个文件都会改变
    2. 无论删除源文件还是硬链接文件,只要存在一个文件(link),这个文件依然可用
    3. 硬链接不会新建inode,也不会更改inode的总数
    4. 硬链接不能跨文件系统,因为在不同的文件系统中inode号是可以重新进行分配的
    5. 硬链接不能够链接目录

    软链接特点:

    1. 无论修改源文件还是软链接文件,另一个文件都会改变
    2. 删除软链接文件,源文件不受影响;反之,软链接文件不正常
    3. 软链接会新建inode号和block,block中不存储实际文件数据,只存源文件的inode和绝对路径
    4. 软链接是可以链接目录的
    5. 软连接是可以跨分区的

    那只删除文件名的话,文件占用的空间会释放吗?

    会将link数减1; 当link为0时,文件占用的空间将释放掉,关键看的是link数的大小
    文件系统