Linux新手必备:如何查看软连接和硬链接 (linux如何查看软连接和硬链接)

作为一名Linux新手,了解软连接和硬链接两种概念非常重要。软链接和硬链接都是文件系统中的链接,它们可以让我们以更加灵活的方式管理文件和目录。本文将为大家介绍软链接和硬链接的定义、区别、创建和查看方法。

一、软链接和硬链接的定义与区别

软链接,也称为符号链接或者外部链接,实际上就是一个特殊的文件,它指向另一个文件或目录。软链接是在文件系统中创建的一个新文件,该文件包含的信息是指向另一个文件或目录的路径。软链接文件本身并不包含任何数据,而是另一个文件或目录的引用。软链接可以被重命名、删除、移动,并且可以跨越多个不同的文件系统。

硬链接,也称为物理链接或者内部链接,它不创建新的文件,而是创建一个指向现有文件的新的入口。简单来说,硬链接就是多个文件名指向同一个inode节点。硬链接的文件名实际上没有什么区别,都是对相同的数据块的新起一个名字。如果要删除硬链接,只需删除其中任意一个链接即可,不会影响其他链接的功能。因此,硬链接只能在同一个文件系统中使用。

软链接与硬链接的区别在于,软链接是创建了一个新的文件,而硬链接则是创建了多个指向相同数据块的不同文件名。软链接间接地指向文件或目录的位置,硬链接直接指向inode节点。

二、创建软链接和硬链接

1. 创建软链接

创建软链接的命令是ln -s。比如,要将一个名为A的文件连接至一个名为B的文件的路径,在终端中输入:

ln -s /路径/B /路径/A

2. 创建硬链接

创建硬链接的命令是ln。比如,要将一个名为A的文件连接至一个名为B的文件的路径,在终端中输入:

ln /路径/B /路径/A

需要注意的是,ln命令不能创建文件夹的硬链接。

三、查看软链接和硬链接

1. 查看软链接

要查看软链接,可以使用ls -l命令。软链接的文件类型是“l”,而不是“-”。另外,在文件大小和文件时间的位置,会显示链接文件所指向的原始文件。比如,要查看软链接文件名为A的软链接所指向的路径,在终端中输入:

ls -l /路径/A

2. 查看硬链接

要查看文件的硬链接数目,可以使用ls -l命令。在显示的一排信息中,有一个数字表示硬链接数。比如,要查看文件名为A的文件的硬链接数,在终端中输入:

ls -l /路径/A

此外,还可以使用stat命令来查看文件的硬链接数和inode信息。比如,要查看文件名为A的文件的inode和硬链接数目,在终端中输入:

stat /路径/A

以上方法,既可以查看文件,也可以查看目录的软链接和硬链接。

四、

通过本文的介绍,相信大家已经了解了软链接和硬链接的定义、区别、创建和查看方法。这些链接技术能够提升我们在Linux系统中管理文件和目录的灵活性和效率,是绝对不能忽略的技能。希望各位Linux新手们能够掌握这些技能,更好地使用Linux系统。

相关问题拓展阅读:

linux 如何查看一个软连接实际指向的文件的位置

1、在Linux命令行界桐核蠢面输入命令:ls -al 

2、如下图,->带局陪有这个符号的则为软连接,initrd.img为软连接的文件名,而->后面氏信跟着的boot/initrd.img-3.13.0-32-geberic则为这个软连接文件的真实路径

3、

linux下查看软连接的信息使用命令“ls -L”最后一列就是原始地址(实际指向的文件的位置)。ln -s /home/basic/dl/ build/执行完成后,会在build路径下dl的目录, 使用ls -l查看会发现build下的dl-〉/home/basic/dl,枝肆吵进入build/dl下即可查看与访问相应的文件。

在Linux

命令行界面

输入命令:ls -al;

带有“->”符猛侍号的则为软连接,雹弊initrd.img为软连接的文件名,而->后面跟着的boot/initrd.img-3.13.0-32-geberic则为软连接文件的真实路径。

参考资料

LINUX ln命令硬连接软连接详细解释

.360doc个人图书馆

如何检查一个软件连接实际指向的文件位置,可以在以你的连软件袜老纤连接当中告仿去找他的设置文件,就能找到含咐他一定的位置。

readlink -f 软链接文件

readlink 多数操作系统都支颂嫌物持该命令

输者宏出符号链接值或者权威文件名

英文野液为:

print value of a symbolic link or canonical file name

linux 链接的使用 创建和删除符号连接(软、硬链接)

1 . 使用方式 :ln source_file dist_file (source_file是待建立链接文件的文件,dist_file是新创建的链接文件)

-f 建立时,将同档案名删除.

-i 删除前进行询问.

ln -s abc cde 建立abc 的软连接

ln abc cde 建立abc的硬连接,

对于一个文件来说,有唯一的索引接点与之对应,而对于一个索引接点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件源敏友可以通过不同的路径去访问该文件。注意在Linux下是一切皆文件的啊,文件夹、新加的硬盘 …都可以看着文件来拿早处理的啊。

连接有软连接和硬连接(hard link)之分的,软连接(symbolic link)又叫符号连接。符号连接相当于Windows下的快捷方式。

不可以对文件夹建立硬连接的,我们通常用的还是软连接比较多。

eg:

ln -s source dist# 建立软连接

ln source dist# 建立硬连接

软链接实际上只是一段文字,里面包含着它所指向的文件的名字,系统看到软链接后自动跳到对应的文件位置处进行处理;相反,硬联接为文件开设一个新的目录 项,硬链接与文件原有的名字是平权的,在Linux看来它们是等价的。由于这个原因,硬链接不能连接两个不同文件系统上的文件。

(1)软连接可以 跨文件系统 ,硬连雹槐接不可以 。实践的方法就是用共享文件把windows下的 aa.txt文本文档连接到linux下/root目录 下 bb,cc . ln -s aa.txt /root/bb 连接成功 。ln aa.txt /root/bb 失败 。

(2)关于 I节点的问题 。硬连接不管有多少个,都指向的是同一个I节点,会把 结点连接数增加,只要结点的连接数不是 0,文件就一直存在,不管你删除的是源文件还是 连接的文件 。只要有一个存在 ,文件就 存在 (其实也不分什么源文件连接文件的 ,因为他们指向都是同一个 I节点)。 当你修改源文件或者连接文件任何一个的时候 ,其他的文件都会做同步的修改。软链接不直接使用i节点号作为文件指针,而是使用文件路径名作为指针。所以 删除连接文件 对源文件无影响,但是删除源文件,连接文件就会找不到要指向的文件 。软链接有自己的inode,并在磁盘上有一小片空间存放路径名.

(3)软连接可以对一个不存在的文件名进行连接 。

(4)软连接可以对目录进行连接。

备 注:I节点 :它是UNIX内部用于描述文件特性的数据结构.我们通常称I节点为文件索引结点(信息结点).i节点含有关于文件的大部分的重要信息,包括文件数据块在 磁盘上的地址.每一个I节点有它自己的标志号,我们称为文件顺序号.I节点包含的信息 1.文件类型 2.文件属主关系 3.文件的访问权限 4.文件的时间截.

最后 删除符号链接,有创建就有删除

rm -rf symbolic_name 注意不是rm -rf symbolic_name/

在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。

链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。符号连接相当于Windows下的快捷方式。

硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode。可以用:ln命令来建立硬链接。

语法:

ln existingfile newfile(sexistingfile 待建立链接文件的文件,newfile是新创建的链接文件)

ln existingfile-list directory

-f 建立时,将同档案名删除.

-i 删除前进行询问.

ln -s abc cde 建立abc 的软连接

ln abc cde 建立abc的硬连接,

用法:

之一种:为”existingfile”创建硬链接,文件名为”newfile”。

第二种:在”directory”目录中,为”existingfile-list”中包含的所有文件创建一个同名的硬链接。

常用可选 –f 无论”newfile”存在与否,都创建链接。-n 如果”newfile”已存在,就不创建链接。

下面举一些例子:

# ls -il

总计 0

rw-r–r– 1 root root:17 file1

rw-r–r– 2 root root:17 file2

# ln file2 file2hand

# ls -il

总计 0

rw-r–r– 1 root root:17 file1

rw-r–r– 2 root root:17 file2

rw-r–r– 2 root root:17 file2hand

#

注意在创建链接前,file1 显示的链接数目为1,创建链接后file1和file1hard的链接数目都变为2;file1和file1hard在inode号是一样的file1和file1hard显示的文件大小也是一样。可见进行了ln命令的操作结果:file1和file1hard是同一个文件的两个名字,它们具有同样的索引节点号和文件属性,建立文件file1的硬链接,就是为file1的文件索引节点在当前目录上建立一个新指针。你可以删除其中任何一个,如rm file2 ,每次只会删除一个指针,链接数同时减一,当链接数减为0时,内核才会把文件内容从磁盘上删除。

还可以在不同目录,但同一文件系统中建立文件的硬链接。设file1、file2在目录/home/root/dir1中,下面的命令,在/home/root中建立file2的硬链接。

ln file2 /home/root/file2hard

下面的程序,是将dir1目录中所有文件,在目录dir2中建立硬链接

如果使用了 ln –f existingfile newfile,如果newfile已经存在,则无论原来newfile是什么文件,只用当前用户对它有写权限,newfile就成为exisitngfile的硬链接文件。

尽管硬链接节省空间,也是Linux系统整合文件系统的传统方式,但是存在一下不足之处:

(1)不可以在不同文件系统的文件间建立链接

(2)只有超级用户才可以为目录创建硬链接。

软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。

建立软链接,只要在ln后面加上选项 –s,下面举个例子

# ls -il

总计 0

rw-r–r– 1 root root:17 file1

rw-r–r– 2 root root:17 file2

rw-r–r– 2 root root:17 file2hand

# ln -s file1 file1soft

# ls -il

总计 0

rw-r–r– 1 root root:17 file1

lrwxrwxrwx 1 root root:24 file1soft -> file1

rw-r–r– 2 root root:17 file2

rw-r–r– 2 root root:17 file2hand

从上面链接后的结果可以看出来软链接与硬链接,区别不仅仅是在概念上,在实现上也是不同的。区别:硬链接原文件&链接文件公用一个inode号,说明他们是同一个文件,而软链接原文件&链接文件拥有不同的inode号,表明他们是两个不同的文件;在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;链接数目是不一样的,软链接的链接数目不会增加;文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的,这用强调,因为是等同的嘛,而这里软链接显示的大小与原文件就不同了,file1大小是48B,而file1soft是5B,这里面的5实际上就是“file1”的大小。

总之,建立软链接就是建立了一个新文件。当访问链接文件时,系统就会发现他是个链接文件,它读取链接文件找到真正要访问的文件。

在不同系统之间建立软链接、对目录建立链接,这里就不举例了,读者可以自己去尝试,我也是在不断实践中学习的。

当然软链接也有硬链接没有的缺点,因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了~~,而硬链接就没有这个缺陷,你想怎么移就怎么移(呵呵);还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。

补充一下:可以通过symlink来查看链接文件,可以用 man symlink来学习。

三、删除链接

有创建就有删除

rm -rf symbolic_name 注意不是rm -rf symbolic_name/

# ls -il

总计 0

rw-r–r– 1 root root:17 file1

lrwxrwxrwx 1 root root:24 file1soft -> file1

rw-r–r– 2 root root:17 file2

rw-r–r– 2 root root:17 file2hand

# rm -rf file1soft

# ls -il

总计 0

rw-r–r– 1 root root:17 file1

rw-r–r– 2 root root:17 file2

rw-r–r– 2 root root:17 file2hand

#

————————————

linux 软连接和硬链接的区别:

————————————

4点不同 :

(1)软连接可以 跨文件系统 ,硬连接不可以 。

实践的方法就是用共享文件把windows下的 aa.txt文本文档连接到linux下/root目录 下 bb,cc . ln -s aa.txt

/root/bb 连接成功 。ln aa.txt /root/bb 失败 。

(2)关于 I节点的问题 。硬连接不管有多少个,都指向的是同一个I节点,会把 结点连接数增加 ,只要结点的连接数不是 0,文件就一直存在 ,不管你删除的是

源文件还是 连接的文件 。只要有一个存在 ,文件就 存在 (其实也不分什么 源文件连接文件的 ,因为他们指向都是同一个 I节点)。 当你修改源文件或者连接文件

任何一个的时候 ,其他的 文件都会做同步的修改 。软链接不直接使用i节点号作为文件指针,而是使用文件路径名作为指针。所以 删除连接文件 对源文件无影响,但

是 删除 源文件,连接文件就会找不到要指向的文件 。软链接有自己的inode,并在磁盘上有一小片空间存放路径名.

(3)软连接可以对一个不存在的文件名进行连接 。

(4)软连接可以对目录进行连接。

备注:I节点 :它是UNIX内部用于描述文件特性的数据结构.我们通常称I节点为文件索引结点(信息结点).i节点 含有关于文件的大部分的重要信 息,包括文件数据块在

Linux中硬链接和软链接的区别与联系!

链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。在Linux操作系统中,链接被分为两种:软链接(SoftLink,符号链接)和硬链接(HardLink)。那么什么是软链接?什么是硬链接?Linux中软链接和硬链接之间有什么区别和联系?以下是详细的内容介绍。

  为解决文件的共享使用,Linux系统引入了两种链接:硬链接和软链接。在Linux中,元数据中的inode号才是文件的唯一标识而非文件名,文件内容要通过inode号来寻找,犹如交通指示牌一样,指示着数据找寻的方向。

  硬链接(Hard Link)

  A和B的硬链接,则慧汪纯A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,A和B对文件系统来说是完全平等的。如果删除其中一个,对另外一个没有任何影响。每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收。

  注:文件和文件名是不同的东西,rm A删除的只是A这个文件名,而A对应的数据块只有在inode节点链接数减少为0的时候才会被系统回收。

  软链接(Soft Link)

  A是B的软链接,A的目录项中的inode节点号与B的目录项中的节点号不相同,A和B指向的是两个不陵闷同的inode,继而指向两块不同的数据块。但是A的数据块中存放的只是B的路径名。A和B之间是主从关系,如果B被删除了,A依然存在,但指向的是一个无效的链接。

  Linux中软链接和硬链接之间有什么区别和联系?

  概念不同:

  软链接可以理解成快捷方式,和原文件的inode号不一样,它和Windows下的快捷方式的作用是一样的,软链接数据块中记录的亦是相对路径指向。

  硬链接和原文件对应一个inode,就是对应一个文件,可以理解成一个文件有几个别名。

  用法不同:

  软链接可以理解成快捷方式,也清楚知道原文件在哪里。它和Windows下的快捷方式前咐的作用是一样的,和Windows一样,删除源文件,快捷方式也就无法使用了。

  硬链接可以看成一个备份,但并没有增加空间,因为文件就一个,这种可以防止源文件删除后不能使用问题;同时也有局限性,不能对目录和跨文件系统使用。

  语法格式(ln):

  硬链接:ln 源文件 链接名

  软链接:ln -s 源文件 链接名

  注意:链接的源文件路径要写绝对路径,否则会报错。

关于linux如何查看软连接和硬链接的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux新手必备:如何查看软连接和硬链接 (linux如何查看软连接和硬链接)