使用ln 给Linux 程序/脚本 创建一个”快捷方式“ ?

我的笔记 · 我的笔记 · 2128 字

使用ln命令

ln [参数] [源文件或目录] [目标文件或目录]

一般情况下使用软链接 -s即可

语法

ln [参数][源文件或目录][目标文件或目录] 其中参数的格式为

[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]

[--help] [--version] [--]

命令功能 :  Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。

不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

软链接

硬链接

命令参数

必要参数

选择参数

实例

给文件创建软链接,为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效:

ln -s log2013.log link2013

输出:

[root@localhost test]# ll -rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log [root@localhost test]# ln -s log2013.log link2013 [root@localhost test]# ll lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log -rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log

给文件创建硬链接,为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同

ln log2013.log ln2013

输出:

[root@localhost test]# ll lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log -rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log [root@localhost test]# ln log2013.log ln2013 [root@localhost test]# ll lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log -rw-r--r-- 2 root bin 61 11-13 06:03 ln2013 -rw-r--r-- 2 root bin 61 11-13 06:03 log2013.log

来源: http://www.runoob.com/linux/linux-comm-ln.html

关于硬链接和软链接的区别:

1.原理上:

linux下每一个文件和目录都有唯一的一个inode节点。通过 ls -ail可以查看该文件/目录 的inode唯一编号.

硬链接(hard link):A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,A和B对文件系统来说是完全平等的。如果删除了其中一个,对另外一个没有影响。每增加一个文件名,inode节点上的链接数增加一,**每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收。**注:文件和文件名是不同的东西,rm A删除的只是A这个文件名,而A对应的数据块(文件)只有在inode节点链接数减少为0的时候才会被系统回收。

软链接(soft link):A是B的软链接(A和B都是文件名),A的目录项中的inode节点号与B的目录项中的inode节点号不相同,A和B指向的是两个不同的inode,继而指向两块不同的数据块。但是A的数据块中存放的只是B的路径名(可以根据这个找到B的目录项)。A和B之间是“主从”关系,如果B被删除了,A仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。

2.使用限制上:

硬链接:a.不能对目录创建硬链接,原因有几种,最重要的是:文件系统不能存在链接环(目录创建时的".."除外,这个系统可以识别出来),存在环的后果会导致例如文件遍历等操作的混乱(du,pwd等命令的运作原理就是基于文件硬链接,顺便一提,ls -l结果的第二列也是文件的硬链接数,即inode节点的链接数)

b:不能对不同的文件系统创建硬链接,即两个文件名要在相同的文件系统下。

c:不能对不存在的文件创建硬链接,由原理即可知原因。

软链接:a.可以对目录创建软链接,遍历操作会忽略目录的软链接。

b:可以跨文件系统

c:可以对不存在的文件创建软链接,因为放的只是一个字符串,至于这个字符串是不是对于一个实际的文件,就是另外一回事了

3.命令

硬:ln 源文件 链接名

软:ln -s 源文件 链接名

来源: https://www.cnblogs.com/ylan2009/p/4287929.html

linux 下的硬链接、软链接

软链接

软连接主要目的是升级之后向前兼容。软链接相当于快捷方式。当我删除源文件之后,后面的文件就找不到前面的文件了。

软连接相当于:a->b;b->inode.

例子:软连接的建立

ln -s libiptc.so.0.0.0 libip6tc.so.0      //原来的库是libip6tc.so.0,升级后的库是libiptc.so.0.0.0。升级之后我继续保留原来的

名字:libip6tc.so.0,用他指向实际使用的库。这样用户就不需要修改名字了。

libip6tc.so.0 -> libiptc.so.0.0.0          //ll 之后的显示。这样我对libip6tc.so.0进行操作,其实就是对 libiptc.so.0.0.0进行操作。

硬链接

linux下每一个文件和目录都有唯一的一个inode节点。

硬链接就是**有几个名字可以到磁盘上的那个inode。相当于:a->inode;b->inode;c->inode  **

ll 命令后面的数字显示的就是硬链接(下面例子中的15)的数目。

磁盘在inode上存对应的数据。如果一个文件硬链接数为n,删除一个之后没有什么影响。只有当最后一个硬链接删除之后,才不能用。

但是这个不能用,指的是我没有方法找到inode了,并不代表操作系统删除了这个inode的数据。只要这个inode没有被覆盖,还是能恢复的。

例子1:硬链接的理解

[liupc@ubuntu ~/Projects]$>ls -lia                                       //-i参数可以显示inode

534673 drwxrwxr-x  5 liupc liupc 4096 May 15 05:22 .        //534673就是当前目录的inode。而上层目录的inode是400068.

400068 drwxr-xr-x 15 liupc liupc 4096 May 15 05:22 ..

[liupc@ubuntu ~/Projects]$>cd ..                                        //进入到上层目录

[liupc@ubuntu ~]$>ls -lia

400068 drwxr-xr-x 15 liupc liupc 4096 May 15 05:22 .         //可以看到"."的inode也是400068.

393217 drwxr-xr-x  3 root  root  4096 May 12 06:34 ..

[liupc@ubuntu /home]$>ls -li

total 4

400068 drwxr-xr-x 15 liupc liupc 4096 May 15 05:22 liupc //可以看到"liupc"的inode也是400068.第一个中".."和第二个中的"."其实就                                                                                      是"/home/liupc"的硬链接。因为他们有共同的inode.(软连接的两个文件具有不                                                                                      同的inode.)

例子2:硬链接的建立

ln Depth_Search.c 111                                                                 //建立硬链接:111

root@ubuntu:/home/liupc/Projects# ls -il                                     //通过ls -il 可以看到:两个文件的inode相同。硬链接数变成了2.

535496 -rw-rw-r-- 2 liupc liupc  718 May 15 05:22 111                    删除任意一个没有影响。

535496 -rw-rw-r-- 2 liupc liupc  718 May 15 05:22 Depth_Search.c

来源:https://blog.csdn.net/pengchengliu/article/details/80471286