1.硬链接
多个文件名指向同一个inode号码。这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为"硬链接"(hard link)。
1)基本指令:ln 源文件 目标文件
[root@zcf home]# ln ip.txt myip.txt
[root@zcf home]# ls -il
total 36
75 drwxr-xr-x. 3 zcf root 36 Jul 20 15:47 aaa
6101 -rw-r--r--. 1 root root 130 Jul 17 10:47 apple.tar.gz
115 -rw-r--r--. 1 root root 172 Jul 17 10:28 apple.zip
325024 drwxr-xr-x. 3 root root 29 Jul 16 20:18 bbb
6085 -rw-r--r--. 1 root root 150 Jul 20 14:42 cal2.txt
6063 -rw-r--r--. 1 root root 227 Jul 17 11:09 cal.tar.gz
6083 drwxr-xr-x. 2 root root 57 Jul 15 18:50 home
6060 -rw-r--r--. 2 root root 1155 Jul 20 16:34 ip.txt
6098 -rw-r--r--. 1 root root 273 Jul 21 14:37 mydate.txt
6060 -rw-r--r--. 2 root root 1155 Jul 20 16:34 myip.txt
6100 drwxr-xr-x. 3 root root 20 Jul 20 20:06 mytest1
6091 -rw-r--r--. 1 root root 130 Jul 15 15:31 pc.tar.gz
108 drwxrwxrwx. 2 root root 55 Jul 20 17:03 test
67 drwx------. 15 zcf zcf 4096 Jul 21 14:24 zcf
2.软链接
除了硬链接以外,还有一种特殊情况。文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的"软链接"(soft link)或者"符号链接(symbolic link)。
1)基本语法:ln -s 源文件 目标文件
[root@zcf home]# ln -s cal2.txt cal3.txt
[root@zcf home]# ll
total 36
drwxr-xr-x. 3 zcf root 36 Jul 20 15:47 aaa
-rw-r--r--. 1 root root 130 Jul 17 10:47 apple.tar.gz
-rw-r--r--. 1 root root 172 Jul 17 10:28 apple.zip
drwxr-xr-x. 3 root root 29 Jul 16 20:18 bbb
-rw-r--r--. 1 root root 150 Jul 20 14:42 cal2.txt
lrwxrwxrwx. 1 root root 8 Jul 21 15:02 cal3.txt -> cal2.txt
-rw-r--r--. 1 root root 227 Jul 17 11:09 cal.tar.gz
drwxr-xr-x. 2 root root 57 Jul 15 18:50 home
-rw-r--r--. 2 root root 1182 Jul 21 14:58 ip.txt
-rw-r--r--. 1 root root 273 Jul 21 14:37 mydate.txt
-rw-r--r--. 2 root root 1182 Jul 21 14:58 myip.txt
drwxr-xr-x. 3 root root 20 Jul 20 20:06 mytest1
-rw-r--r--. 1 root root 130 Jul 15 15:31 pc.tar.gz
drwxrwxrwx. 2 root root 55 Jul 20 17:03 test
drwx------. 15 zcf zcf 4096 Jul 21 14:24 zcf
3.Linux删除文件原理
linux是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才能被删除,每个文件都有2个link计数器,i_count和i_nlink。
i_count是指当前文件使用者的数量,i_nlink的意义是介质连接的数量(硬链接的数量),可以理解为i_count是内存引用计数器,i_nlink是磁盘的引用计数器。
可以通过lsof命令可以看到我们删除文件被那些进程还占用,
1)基本指令:lsof |grep delete
Linux文件目录管理命令
1.cut命令
cut就是用来切割文本内容的
常用参数:
-b:以字节为单位进行分割。
-c:以字符为单位进行分割。
-d:自定义分隔符,默认为制表符。
-f:与-d一起使用,指定显示那个区域。
2.sort 命令
用于字段排序。
1)基本指令:sort + 命令选项 +文件
命令选项:
-f:忽略大小写的差异
-b:忽略最前面的空格符部分
-M:以月份排
-n:使用纯数字进行排序
-r:反向排序
-u:就是uniq,去重
-k:以那个区间来排序的意思
-t:分隔符,默认是用[tab]健来分隔
3.uniq命令
主要用来实现去除重复行,前提条件是必须事先排序过的文本。
1)基本语法:uniq + 选项 + 文件
2)参数:-c:在每行前面加上表示相应行且出现次数
-d:只输出重复行。
4.wc命令
统计文件的字节或者行数信息
1)基本命令:wc +选项+文件
常用参数:-l :统计行数。
-c: 统计字节数。
-w:统计字数。
-m:统计字符数。