linux命令行学习(6):硬链接与软链接(符号链接)

linux命令行学习(6):硬链接与软链接(符号链接)_第1张图片

命令ln创建链接。ln是link之略。

一、什么是链接?

链接相当于windows的快捷方式,指向文件。

对链接操作相当于对文件操作,可以把链接视为文件的一个别名。

ls命令显示文件时,链接和文件都会显示。

链接有两种:硬链接和软链接(又称符号链接)。

硬链接与软链接有区别。

硬链接不能指向目录,只能指向文件;软链接既可以指向文件,也可以指向目录。

二、硬链接

硬链接相当于文件的一个副本,两者完全一样,而且它们之中一个变化了,另一个同步变化。如果一个文件有多个硬链接,也是这样的。

硬链接不存在失效问题。如果我们删除了原文件,硬链接仍然存在,且保持了原文件中的内容。所以也可以把硬链接视为一种备份措施。

硬链接使我们可以在不同的地方共享同一个文件。但要注意,原文件和硬链接必须在同一磁盘分区。我的环境是虚拟机,只有一个分区,所以感觉不到这个问题。

三、软链接

跟硬链接不一样,软链接没有实际内容,它里面只有指向原文件的指针。所以软链接有失效的问题。如果我们删除了原文件,则这个链接就失效了,用ls显示的时候,失效的软链接显示为红色。

用ls  -l显示的时候,硬链接的显示与文件一样,但软链接有链接标志(用箭头指向原文件)。

软链接不存在分区的限制。一个文件或目录的软链接可以在不同的分区。软链接也使我们可以在不同的地方访问同一个文件。这是真正的同一个文件,不是像硬链接那样建立了副本,这里有实际内容的文件只有一个。

四、建立链接的ln命令

链接都由ln命令来建立

1 建立硬链接

ln 文件 链接名

2 建立软链接

ln -s 文件 链接名

选项-s表示建立的是软链接。

五、建立链接时的路径问题

可以把链接建立在原文件的同一个目录,也可以建立在不同的目录,因此ln命令中的操作对象都可以加路径。

操作对象是原文件和链接名。

把链接建立在与原文件不同的目录时,对原文件和链接名都既可以使用绝对路径,又可以使用相对路径。

但将软链接建立在与原文件不同的目录,对原文件必须最好使用绝对路径,链接名可以使用相对路径。如果对原文件名使用相对路径,容易出错,导致建立的软链接是无效链接,具体的原因,在《linux命令行学习(9):再谈建立软链接的路径表达》中谈。

你可能感兴趣的:(linux命令行学习(6):硬链接与软链接(符号链接))