4.17 章
红色区域表示:包含有多少个文件使用了 相同的inode号,也就表明了这个目录下有几个子目录。
因为任何一个目录下都有 “ . ” “ .. ” 这样的2个隐藏的子目录,所以 类型“d”(d是目录类型) 都是>2 的数字。
-i 查询 inode 号
用 -id 查询一下 audit 目录的 inode号 (d是目录的标识代码)
用 –i 查询一下audit 目录下的文件的 inode号
用 –ia 查一下 隐藏目录的 inode号
任何目录下都有一个点“.” 表示该目录本身, 俩个点“..” 表示该目录的上一层目录
cd .. 打开上一层目录 , 所以 .. 表示上一层目录意思
"d" 表示目录类型
“ - ” —— 属于“普通文件类型”,一般是很少有权限后面数字大于1的(大于1说明存在硬链接).
普通文件,如果 > 1 说明此 文件是包含硬链接的文件,即有不止一个文件同时使用了同一个内存地址。
<硬链接>
inode 就是格式化时候的区域地址“门牌号”,inode号一样,意味着这是同一个文件,相当于有多个名字都可以访问到同一硬件区域,多个门到达的是同一个房间 。
文件可以硬链接,目录 是 无法 主动 创建 硬链接的!
做硬链接的命令—— ln
格式: ln 实际文件名 新链接文件名(同时创建这个文件,有同名时失败)
把1.txt文件做一个硬链接叫2.txt (相当于别名)
做了硬链接以后可查到 1.txt 和2.txt 的inode是一样的
硬链接记录的地址,只要有一个文件名保留着,就能找到这块区域inode。(就好像一个房间开了多个门,没做一个硬链接就是开了一个新的门,每个门都是能进到同一个房间)
但是只是保存着这个地址,这个地址里面的东西如果跟着变动了,其他也会跟着变,因为原本指向就是同一个文件。
所以一般用来防止误删除。
硬链接 无法跨磁盘或者分区 !
取消硬链接直接删除就好
删除一个文件或者目录命令 —— rm
删除目录的时候需要加 –r
-f 是一个强制删除的选项
不加 –f 会有提示,你是否要删除? 要回复y才能删除
<软链接>
ln -s 实际文件 链接的新文件名
同时创建这个新的链接文件名,已存有同名会创建失败;
没有命名新文件名则默认创建和源文件同名;
实际文件写在前面 , 链接的新文件名写在后面 ;
软链接文件就是一个快捷方式,占用空间非常小。
软链接文件有个 “ l ” 的类型标志,然后文件名是亮蓝色, 并有 软链接符号 -> 指向实际文件的地址
软链接的优势在于可跨分区!
硬链接缺陷是无法跨磁盘或者分区,原因在于 不同硬盘格式化时存在有相同的inode号
(实际)源文件名最好是 绝对路径!不然移动快捷方式后会使链接断裂,因为没有绝对路径默认会在快捷方式名的相对路径下寻找。
4.18章
mv 命令 —— 移动一个文件或者重命名一个文件(可以即移动又重命名)
例如:
mv 2.txt 3.txt (把2.txt 重命名为3.txt)
mv 2.txt /tmp/3.txt (把2.txt移动到 /tmp/ 目录下并重命名为 3.txt)
软链接用的相对路径的话,直接移动后就 标红了,软链接的源文件名还会闪烁,因为找不到源文件了。
原因是如果用的 相对路径,只会在当前的目录下去寻找。
相对路径软链接 更加常用于 一个文件在一个文件夹下存在多个名字,被不同软件使用,但因为本质是同一份文件并不需要复制成多份文件。
比如 库文件夹 /lib64 内:
注意:
因此,在使用软链接的时候,一定要指定(左边)源文件的绝对路径!
这时候再移动到别的目录下也不会报错了!
软链接的作用:
1 方便访问一个文件,可以给 同一文件起多个名字
2 一个文件在 多个位置,可跨磁盘和分区都能访问到
3 扩容 (常用)
扩容举例:
系统里有2个分区:/full /abc ,其中 /full/a.log 快写满 /full 了,为了/full 不被写满要把内容转移,此时看到/abc/还有很多空间,于是借用一下/abc/的空间。
就需要命令:
mv /full/a.log /abc/a.log ; ln -s /abc/a.log /full/a.log
同一行的意义在于会立刻执行,不会间断日志的输入。
这样实际存储文件就变成了/abc/a.log , 而原来的位置 /full/a.log 变为了软链接文件(快捷方式),软件依然可以找到 /full/a.log 这个位置写入日志,但实际文件是存到了/abc/a.log 上。
总结: