1、首先有一个目录dir, 执行ln -s dir dir_link 创建目录的软链接。
2. linux ln -s 用ln -s 链接 根目录到 /home/good怎么做啊。
创建软连接,命令如下:
ln
-s
/
/home/good/linkname
ln的链接分软链接和硬链接两种:
1、软链接就是:“ln
–s
源文件
目标文件芦樱”,只会在选定的位置上生成一个文件的镜像,不会占用磁盘空间,类似与windows的快捷方式。
2、硬链接ln源文件目标晌哗铅文件,没有参数-s,
会在选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保宴好持同步变化。
3. Linux软链接和硬链接的区别之ln命令详解
1. 先来了解一下Linux数据是如何保存和查询的
对操作系统来说,数据分为两种:1. 用户数据 (user data) 2.元数据 (metadata)。用户数据就是保存和记录文件的内容。比如一个1M的ppt文件,500K的txt文件。这都属于用户数据。这个文件总有属性吧,比如大小、修改时间、访问时间、创建时间、存储的位置(文件所在的inode)、文件创建者等等信息。这些属性信息或者理解为汇总信息,我们称它为元数据。一句话,用户数据是文件的真实内容,而元数据则是汇总信息。
在 Linux 中,元数据中的 inode 号(inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块。
2. 查看文件对应的inode号
134474678 latest.tar.gz
linux查看文件对应的inode号
可以看出latest.tar.gz这个文件, inode 号是134474678,Linux查找读写该文件时,以为个inode号码为标识,而不是文件名。文件名类似于网站域名,仅仅是方便人类记忆。
也就是说, inode134474678有一个硬链接,它就是latest.tar.gz。
3. 根据inode号查找对应的文件
那么,问题来了,系统上有没有第二个文件,它的inode号码也是13447467。
使用find查找一下:
查找结果如下:
/root/latest.tar.gz
/root/latest2.tar.gz
linux根据inode号查找对应的文件
硬盘上真的有第二个文件它的inode号码也是134474678,像这种情况,我们认为inode134474678有两个硬链接。当然,这是本文作者提前准备好的。
为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。
4. 确认硬链接的数量
查看一下文件latest.tar.gz
输出结果如下:
-rwxr-xr-x. 2 root root 8743850 Oct 11 15:00 latest.tar.gz
请留意输出的结果中的数字2,表示该文件存在2个硬链接。
正常情况下,一个inode只有一个链接,如下例
输出结果:
-rw-r--r--. 1 root root 9 Nov 21 11:39 abc.txt
请留意输出的结果中的数字1,表示该文件只存在1个硬链接,默认情况下,文件都是只有一个硬链接的。
5. 查看软链接
再来看一个文件
lrwxrwxrwx. 1 root root 15 Sep 26 15:57 /dev/stdout -> /proc/self/fd/1
linux查看软链接
我们发现,/dev/stdout实际上指向另一个文件/proc/self/fd/1,这就是软链接。类似于Windows系统上的快捷方式。
6. 软链接与硬链接的区别
6.1 软链接特点
6.2 硬链接特点
ln链接符原理如下:
Linux ln链接符原理图
7. 创建文件的链接
Linux ln命令是一个非常重要而且常用命令,它用于为文件或者目录创建链接。
7.1 创建软链接
创建一个文件,用于演示软链接。
创建软链接示例:
检查结果:
输出文件属性
lrwxrwxrwx. 1 root root 8 Nov 26 17:48 soft123.txt -> soft.txt
linux创建软链接
可以看出这个文件指向当前目录soft.txt,配置成功。7.2 创建硬链接
创建一个文件,用于演示硬链接。
创建硬链接,没有使用选项
检查结果:
输出文件属性:
-rw-r--r--. 2 root root 0 Nov 26 17:47 hard123.txt
linux创建硬链接
留意以上输出数字2,表明该文件有2个副本。
8. 总结
ln命令可以创建文件的副本,也可以创建软链接。
4. linux ln命令详解
ln是中一个非常重要命令。它的功能是为某一个文件在另外一个位置建立一个同步的链接,这个命令最常用的参数是-s,具体用法是:
ln
-s
源文件
目标文件
-s
是
symbolic的意思。
例:ln
-s
/lib/lsb
/usr/lj
即:在usr目录下建立指向/lib/lsb目录的lj文件。
当
我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的
目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln
-s
/bin/less
/usr/local/bin/less-s
是代号(symbolic)的意思。这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生
相同的变化;第二,ln的链接又软链接和硬链接两种,软链接就是ln
-s
**
**,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln
**
**,没有参数-s,
它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。软链接是可以跨分区的,但是硬链接只能在同一分区
内。如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls
-l命令去察看,就可以看到显示的link的路径了当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,
我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln
-s
/bin/less
/usr/local/bin/less
5. linux硬链接和软连接有什么区别
很多朋友想知道linux软连接和硬链接的区别有什么,下面就让我们来看看吧。
1、作用对象
硬链接只能应用于文件而不能应用于目录,而且也不能分区;软链接可以应用于文件,而且可以应用于目录和分区。
2、语法不同
硬链接的语法:lnfilenamelinkname。
软链接的语法:ln-sfilenamelinkname。
Linux的用处
linux是一套免费开放源代码的操作系统,用户可以按照自己的想法来修改源代码,它的每一个操作,你都能者改够充分了解,这对计算机方面的爱好者是有很大帮助的,它可以让用户知道系统是怎样工作的虚改。
Linux的语言
linux开发用首誉判的是C语言和汇编语言。C语言是Linux的“母语”,这也是linux这个开源环境和本身机制所导致的。Linux的内核部分基本都是用C语言来编写的,还有部分是用汇编语言写的。
6. Linux/Unix里,ln -s这个命令是做什么的我是小白,谢谢你。
用来建立一个软链接,而ln -s /usr/lib/libX11.3 libX11.sl的意思为:为/usr/lib/libX11.3文件建立一个名为libX11.sl的软链接。
命令格式:
ln [参数][源文件或目录][目标文件或目录]
参数
1、-b 删除,覆盖以前建立的链接
2、-d 允许超级用户制作目录的硬链接
3、-f 强制执行
4、-i 交互模式,文件存在则提示用户是否覆盖
5、-n 把符号链接视为一般目录
6、-s 软链接(符号链接)
7、-v 显示详细的处理过程
(6)linuxln硬链接扩展阅读
软链接解释
1、软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式。
2、软链接可以 跨文件系统 ,硬链接不可以。
3、软链接可以对一个不存在的文件名进行链接。
4、软链接可以对目录进行链接。
硬链接:
1、硬链接,以文件副本的形式存在。但不占用实际空间。
2、不允许给目录创建硬链接。
3、硬链接只有在同一个文件系统中才能创建。
7. Linux上ln命令详细说明及软链接和硬链接的区别
硬链接就是同一个文件使用了多个别名(他们有共同的 inode)。硬链接可由命令 link 或 ln 创建,如:
link oldfile newfile
ln oldfile newfile
由于硬链接是有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 inode 号的文件。
硬链接不能对目录进行创建,只可对文件创建。
软链接(也叫符号链接)与硬链接不同,文件用户数据块中存放的内容是另一文件的路径名的指向。软链接就是一个普通文件,只是数据块内容有点特殊。
软链接可对文件或目录创建。
ln -s old.file soft.link
ln -s old.dir soft.link.dir
加-s选项表示创建的是软链接。
删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。
8. linux 怎么删除 创建的 链接 ln
linux命令 - ln - 创建和删除软、硬链接
在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。
链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。符号连接相当于Windows下的快捷方式。
一、硬链接
硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode。可以用:ln命令来建立硬链接。
语法:
ln [options] existingfile newfile(sexistingfile 待建立链接文件的文件,newfile是新创建的链接文件)
ln [options] existingfile-list directory
-f 建立时,将同档案名删除.
-i 删除前进行询问.
ln -s abc cde 建立abc 的软连接
ln abc cde 建立abc的硬连接,
用法:
第一种:为”existingfile”创建硬链接,文件名为”newfile”。
第二种:在”directory”目录中,为”existingfile-list”中包含的所有文件创建一个同名的硬链接。
常用可选[options] –f 无论”newfile”存在与否,都创建链接。-n 如果”newfile”已存在,就不创建链接。
下面举一些例子:
[[email protected] test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
[[email protected] test]# ln file2 file2hand
[[email protected] test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[[email protected] test]#
注意在创建链接前,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中建立硬链接
#mkdir dir2
#ln /home/root/dir1/* /home/root/dir2
如果使用了 ln –f existingfile newfile,如果newfile已经存在,则无论原来newfile是什么文件,只用当前用户对它有写权限,newfile就成为exisitngfile的硬链接文件。
尽管硬链接节省空间,也是Linux系统整合文件系统的传统方式,但是存在一下不足之处:
(1)不可以在不同文件系统的文件间建立链接
(2)只有超级用户才可以为目录创建硬链接。
二、软链接(符号链接)
软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。
建立软链接,只要在ln后面加上选项 –s,下面举个例子
[[email protected] test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[[email protected] test]# ln -s file1 file1soft
[[email protected] test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491140 lrwxrwxrwx 1 root root 5 07-14 14:24 file1soft -> file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
从上面链接后的结果可以看出来软链接与硬链接,区别不仅仅是在概念上,在实现上也是不同的。区别:硬链接原文件&链接文件公用一个inode号,说明他们是同一个文件,而软链接原文件&链接文件拥有不同的inode号,表明他们是两个不同的文件;在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;链接数目是不一样的,软链接的链接数目不会增加;文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的,这用强调,因为是等同的嘛,而这里软链接显示的大小与原文件就不同了,file1大小是48B,而file1soft是5B,这里面的5实际上就是“file1”的大小。
总之,建立软链接就是建立了一个新文件。当访问链接文件时,系统就会发现他是个链接文件,它读取链接文件找到真正要访问的文件。
在不同系统之间建立软链接、对目录建立链接,这里就不举例了,读者可以自己去尝试,我也是在不断实践中学习的。
当然软链接也有硬链接没有的缺点,因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了~~,而硬链接就没有这个缺陷,你想怎么移就怎么移(呵呵);还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。
补充一下:可以通过symlink来查看链接文件,可以用 man symlink来学习。
三、删除链接
有创建就有删除
rm -rf symbolic_name 注意不是rm -rf symbolic_name/
[[email protected] test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1
1491140 lrwxrwxrwx 1 root root 5 07-14 14:24 file1soft -> file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[[email protected] test]# rm -rf file1soft
[[email protected] test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[[email protected] test]#
————————————
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节点 含有关于文件的大部分的重要信 息,包括文件数据块在
磁盘上的地址.每一个I节点有它自己的标志号,我们称为文件顺序号.I节点包含的信息 1.文件类型 2.文件属主关系 3.文件的访问权限 4.文件的时间截.
Note:
硬链接看做是文件的副本
软连接看做是文件的快捷方式
9. linux给文件创建硬链接
在了Linux下创建硬连接和软连接(也就是符号连接)都是用ln命令,当使用ln命令时加上-s选项就表示创建的连接文件是一个软连接,如果使用ln命令时不带-s选项就表示创建的是一个硬连接。而ln命令的格式则是:ln 原文件 连接文件
比如如下命令是创建硬连接的,/home/testfile就是创建的硬连接文件,它连接到/root/testfile这个文件:
ln /root/testfile /home/testfile
下面的则是创建软连接的,这次/home/testfile是一个软连接文件:
ln -s /root/testfile /home/testfile
10. 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 源文件 链接名
注意:链接的源文件路径要写绝对路径,否则会报错。