软链接和硬链接
**在centos7上,挂载点 的节点编号是64,在centos6上,挂载点 的节点编号是2.

硬链接

  • 创建硬链接会增加额外的记录项以引用文件
  • 对应于同一文件系统上一个物理文件
  • 每个目录引用相同的inode号
  • 创建时链接数递增
  • 删除文件时:
    • rm命令递减计数的链接
    • 文件要存在,至少有一个链接数
    • 当链接数为零时,该文件被删除
  • 不能跨越驱动器或分区
  • 语法:

ln filename [linkname ]
硬链接:对一个文件,起多个名字。
ln f1 f11
[root@chaitc data]#ll
total 0
-rw-r—r— 2 root root 0 Feb 27 21:57 f1
-rw-r—r— 2 root root 0 Feb 27 21:57 f11
-rw-r—r— 1 root root 0 Feb 27 22:00 f2
有两个文件,执行的同一个文件。
链接数:同一个文件,它有几个名称,创建一个链接,会增长链接数
节点号
硬链接,不能跨分区,只能跨同一分区的不同目录
硬链接不支持文件夹,只支持文件
ln dir1 dir2
ln: ‘dir1’: hard link not allowed for directory

符号(或软)链接

  • 一个符号链接指向另一个文件
  • ls -l 的 显示链接的名称和引用的文件
  • 一个符号链接的内容是它引用文件的名称
  • 可以对目录进行
  • 可以跨分区
  • 指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或不减少目标文件inode的引用计数;
  • 语法:

ln -s filename [linkname]
硬链接指向的是文件,软链接指向的是文件名
image.png
ln -s
软链接:原始文件一般路径用相对路径,相对路径一定相对于软链接文件的路径
硬链接和软链接的区别硬链接和软链接的区别
1 同一文件? 硬链接本质是同一文件,节点编号相同,而软链接是新的文件,指向对应的文件名
2 跨分区?硬链接不可以跨分区,跨设备。而软链接可以跨分区,跨设备。
3 链接数增长?创建硬链接,链接数增加,软链接不增加
4 inode Number 是否相同?硬链接相同,软链接不同
5 原始文件删除,链接文件可否访问?硬链接可访问,软链接不可访问
6 大小? 原始文件大小 和硬链接大小一致。而软链接是它的路径大小
7支持目录?硬链接不支持目录,软链接支持
8相对路径?写法不一样,软链接是根据软链接的文件的位置来确定相对路径,而硬链接就是根据当前目录来确定相对路径。

硬链接不支持目录,只支持文件
每个目录,它的链接数至少是2
软链接本质 只是个指针而已
ln -s ../../dev/zero ../d1/d2/zero-link
ls -l ../dev/zero ../d1/d2/zero-link
lrwxrwxrwx 1 root root 14 Mar 1 23:52 ../d1/d2/zero-link -> ../../dev/zero
crw-rw-rw- 1 root root 1, 5 Feb 27 15:07 ../dev/zero

确定文件内容

  • 文件可以包含多种类型的数据
  • 检查文件的类型,然后确定适当的打开命令或应用程序使用
  • file [options]
  • 常用选项:

-b 列出文件辨识结果时,不显示文件名称
-f filelist 列出文件filelist中文件名的文件类型
-F 使用指定分隔符号替换输出文件名后默认的”:”分隔符
-L 查看对应软链接对应文件的文件类型
—help 显示命令在线帮助
file /bin/cat
/bin/cat: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=03fda19cacc76ee7464947e29ed25552138ae50e, stripped
file /bin/cat
/bin/cat: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=03fda19cacc76ee7464947e29ed25552138ae50e, stripped
reset 重置
magic number 魔数
[root@chaitc data]#file /etc/grub2.cfg
/etc/grub2.cfg: symbolic link to ../boot/grub2/grub.cfg'<br />[root@chaitc data]#file -L /etc/grub2.cfg <br />/etc/grub2.cfg: ASCII text<br />[root@chaitc data]#ll /dev/cdrom <br />lrwxrwxrwx 1 root root 3 Feb 27 15:07 /dev/cdrom -> sr0<br />[root@chaitc data]#file /dev/cdrom <br />/dev/cdrom: symbolic link tosr0’
[root@chaitc data]#file -L /dev/cdrom
/dev/cdrom: block special