软链接与硬链接的用法和区别

软链接与硬链接的用法

说明:

ln命令说明:

ln命令是一个非常重要命令,为某个文件在另一个位置建立一个同步链接,当需要在不同目录用到相同文件时,不需要在每一个需要的目录下都放一个必须相同的文件,只要在某个固定的目录,放上该文件,然后在其他目录下用ln命令链接(ln)就可以,不必重复占用磁盘空间。

执行一个程序或命令成功的有三种方法:

1.需要进入到该程序或命令的安装的路径下去执行,才不会报错

2.如果是在别的目录下去执行这个程序或命令,即需要在不同目录用到相同文件时,不需要在每一个需要的目录下都放一个必须相同的文件,只要在某个固定的目录,放上该文件,然后在其他目录下使用ln命令链接(ln)做一个软链接到该目录下就可以,不用复制文件到目录下,不必重复占用磁盘空间

3.当需要在不同目录下使用相同文件时,也可以将这个程序或命令所在的目录的相对或者绝对路径的完整路径到环境变量中去就可以执行该程序。

4.如果不少软件没有安装在同一个目录,但是又想在系统任何路径快捷的使用该命令,那么就要设置添加很多个环境变量,这样会使得系统性能下降,执行命令的时候系统会遍历很多个文件夹。这时候也可以用软链接的方法,不同的是将软件的可执行程序创建一个软链接直接放到path指定的目录中(可从echo $PATH中反馈的的路径中选择),当在系统的任意位置执行该命令时,系统也可以找到相应的运行程序。

ln -s 源文件名称(路径) 软链接文件名称(软链接放到path指定目录中,路径)

这里以ls命令作为示例讲解,带入到上面3点执行一个程序或命令成功的三种方法中去

首先大家有没有想过这么一个问题,为什么我们在linux中的任意一个位置或目录都能使用ls这个命令,并且能够通过这个命令去查看当前目录下的其它目录和文件。这是因为我们ls所在的目录也就是/bin跟/usr/bin这两个目录是有添加到环境变量中的目录,怎么知道环境变量中的目录有哪些,可以输入echo $PATH进行查看。

因为我们是希望ls命令在任意位置都能执行,所以当我们用到第2种建立软链接的方法时,就不太适用了,不可能在linux任意位置上都建立一个ls的软链接,这显然不适用。

所以这里ls可以使用第3种添加环境变量的方法实现。先介绍一下ls所在的目录

ls命令是在/bin/ls这个目录下的同时也是/usr/bin/ls这个目录,因为/bin这个目录做了一个链接到/usr/bin下面的。也就是说/bin这个目录其实就是/usr/bin这个目录,这两个目录是一模一样的,而ls就在/bin/ls下也就是在/usr/bin/ls下。

 

打印环境变量:

echo $PATH

 通过打印出来的环境变量可以看到,/bin、/usr/bin这两个目录是有添加到环境变量中的,所以我们才能在linux任意位置使用ls命令。

不信大家可以做一个实验,把ls命令mv(移动)到root下,这是就会发现ls命令用不了了,如果想要继续使用ls命令,可以试着把/root这个目录添加到环境变量中去就会发现这时候ls在任意位置又可以使用了。但是做完实验后还是把ls命令mv(移动)到原来的/bin、/usr/bin目录中去,因为这个目录是ls默认存放的目录,放到其他目录下,可能存放的东西很杂乱,容易出错或误删。

将ls命令mv(移动)到/root中后,将/root目录添加到环境变量中去

vi /etc/profile
export  PATH=/root:$PATH   //root为可执行程序所在目录。  
或
PATH=$PATH:/root      //root为可执行程序所在目录。
export PATH
 
然后执行source /etc/profile或执行点命令 ./profile 使其更改生效

echo $PATH   //查看设置的环境变量是否生效,是否有/root这个目录

软链接与硬链接的区别

软链接:

1.软连接,以路径形式存在。类似与windows操作系统中的快捷键

2.软链接可以跨文件系统,硬链接不可以

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

4.软连接可以对目录进行连接

5.删除源文件或目录,只删除了数据,不删除链接,此时软链接会白字红底闪烁,cccccdc一旦以同样文件名创建了源文件,链接将继续指向该文件的新数据。

6.与硬链接不同的是,软链接确实是一个新文件,当然它具有不同的索引节点号;而硬链接并没有建立新文件。

硬链接:

1.硬链接,以文件副本形式存在,不占用实际空间

2.不允许给目录创建硬链接

3.硬链接只有在同一个文件系统中才能创建

4.创建硬链接后,已经存在的文件索引节点号(inode)会被多个目录文件项使用。一个文件的硬链接书可以在目录长列表格式的第二列中看到,无额外链接的文件的链接数为1

5.ln命令会增加连接数,rm命令会减少链接数。一个文件除非链接书为0,否则不会从文件系统中被物理删除。

links>1说明有链接数

links=1说明无链接数

links=0会从文件系统中被物理删除掉

6.对链接文件做修改会影响源文件,创建出来的硬链接前面1跟普通文件一样,删除源文件不会影响到硬链接文件

猜你喜欢

转载自blog.csdn.net/weixin_45190065/article/details/126034860