大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
什麽是 symbolic links?就其字面而言,其功用在於制作档案或目录的连结(产生捷 )。 symbolic links可以创造一个和原本档案有相同性质的目录(linked file),它不需太多储存空间的原因在於它是一个指向原本档案的连结,而连结如何指向档案是hard link和symbolic link的其中一个不同点。
创新互联专注于网站建设,为客户提供网站建设、网站制作、网页设计开发服务,多年建网站服务经验,各类网站都可以开发,成都品牌网站建设,公司官网,公司展示网站,网站设计,建网站费用,建网站多少钱,价格优惠,收费合理。
ln预设产生的连结是hard连结,指向档案的hard连结和原本的档案没什麽差别。不论hard连结的名称和原本档案的名称取得一样或是不一样,对原本档案或对hard连结做的改变都会影响到原本的档案。 hard连结因为没办法对目录做连结,而不能延伸档案系统.。
symbolic连结则包含了要被连过去档案名字,有可能跨越档案系统连结到目录,如果後面接一或二个参数, link会建立一连结到一个存在的档案source_file,如果有给target_file,则连结可以被指定名称(taget_flie 的名称),否则连结会建立在目前所在的目录。只要有目录被指定当 source_file,则连结只会使用source_file的最後一部份当source_file。
建立档案连结的指令为 "ln",以下是所做的范例 :
hard link就是复制原来的档案,但实际只保留一份, 如果改变连结中的ㄧ个档案,其馀连结也跟著改变。 且hard link只局限於同一磁碟分割区中
#ln /usr/lib/libGLU.so.1.3 libGLU.so.3
symbolic link代表ㄧ寻找特定档案的路径,如果原来的档案被移除,该连结就会无法使用。 symbolic link可以连结不同分割区
#ln -s /usr/java/javaplug.lib /usr/mozilla/plugins/
-s, --symbolic
make symbolic links instead of hard links
链接:一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。
Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。
我们首先来了解一下几个名词:
索引节点(inode)
要了解链接,我们首先得了解一个概念,叫索引节点(inode)。在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号,我们可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。系统是通过索引节点(而不是文件名)来定位每一个文件。
硬链接(Hard Link)
硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode。可以用:ln命令来建立硬链接。
引用
ln [options] existingfile newfile
ln [options] existingfile-list directory
用法:
第一种为”existingfile”创建硬链接,文件名为”newfile”。
第二种在”directory”目录中,为” existingfile-list”中包含的所有文件创建一个同名的硬链接。
常用可选[options]:-f 无论”newfile”存在与否,都创建链接。-n 如果”newfile”已存在,就不创建链接。
软链接(Soft Link)
软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。和win下的快捷方式差不多。
可以用:ln -s 命令来建立软链接。
引用
ln -s existingfile newfile
ln -s existingfile-list directory
下面我们用一个实例来说明硬链接和软链接。
现在目录下有两个文件,一个名为file1,一个名为file2。
引用
$ ls –il
1052671 -rw-r--r-- 1 Leanx Leanx 0 2010-03-29 13:46 file1
1052670 -rw-r--r-- 1 Leanx Leanx 0 2007-03-29 13:46 file2
首先先做一个file1的硬链接。
引用
$ ln file1 file1hard
$ls –il
1052671 -rw-r--r-- 2 Leanx Leanx 0 2010-03-29 13:46 file1
1052670 -rw-r--r-- 1 Leanx Leanx 0 2010-03-29 13:46 file12
1052671 -rw-r--r-- 2 Leanx Leanx 0 2010-03-29 13:46 file1hard
这里我们注意在创建链接前,file1显示的链接数目为1,创建链接后
1.file1和file1hard的链接数目都变为2。
2.file1和file1的inode号是一样的,都是1052671。
3.file1和file1hard显示的文件大小也是一样,都是0B。
可见进行了ln命令的操作结果:file1和file1hard是同一个文件的两个名字,它们具有同样的索引节点号和文件属性,建立文件file1的硬链接,就是为 file1的文件索引节点在当前目录上建立一个新指针。你可以删除其中任何一个,如rm file1,每次只会删除一个指针,链接数同时减一,只有将所有指向文件内容的指针,也即链接数减为0时,内核才会把文件内容从磁盘上删除。
尽管硬链接节省空间,也是Linux系统整合文件系统的传统方式,但是存在一些不足之处:
1.不允许给目录创建硬链接。
2.不可以在不同文件系统的文件间建立链接。
接着我们做一个指向file2的软链接,软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。
引用
$ ln -s file2 file2soft
$ ls –il
总用量 0
1052671 -rw-r--r-- 2 Leanx Leanx 0 2010-03-29 13:34 file1
1052670 -rw-r--r-- 1 Leanx Leanx 0 2010-03-29 13:35 file2
1053313 lrwxrwxrwx 1 Leanx Leanx 5 2010-03-29 13:45 file2soft - file2
1052671 -rw-r--r-- 2 Leanx Leanx 0 2010-03-29 13:34 file1hard
从上面链接后的结果可以看出来软链接与硬链接,区别不仅仅是在概念上,在实现上也是完全不同的。
区别:
1.硬链接原文件/链接文件公用一个inode号,说明他们是同一个文件,而软链接原文件/链接文件拥有不同的inode号,表明他们是两个不同的文件;
2.在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;
3.链接数目是不一样的,软链接的链接数目不会增加;
4.文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的。而这里软链接显示的大小与原文件就不同了,file2大小是0B,而file2soft是5B。
总之,建立软链接就是建立了一个新文件。当访问链接文件时,系统就会发现他是个链接文件,它读取链接文件找到真正要访问的文件。
当然软链接也有硬链接没有的缺点,因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。
用来建立一个软链接,而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 显示详细的处理过程
扩展资料
软链接解释
1、软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式。
2、软链接可以 跨文件系统 ,硬链接不可以。
3、软链接可以对一个不存在的文件名进行链接。
4、软链接可以对目录进行链接。
硬链接:
1、硬链接,以文件副本的形式存在。但不占用实际空间。
2、不允许给目录创建硬链接。
3、硬链接只有在同一个文件系统中才能创建。
请看man ln
-s = soft,意为软链接
-f = force,表示强制创建(使用前请备份之前存在文件)
ln ../newlib-1.13.0/newlib newlib
少了一个空格
你在输命令的时候,要习惯用tab键,如果连续按两次tab键出不来,那么说明这个文件不存在,或者你输入有错。
ln:好像是link的简写,从字面就可以看出,这个命令是干吗的,就是创建链接
cp:就是copy的简写,从字面意思就可以看出,这个命令就是复制,拷贝
mv:就是move的简写,从字面意思就知道这个命令是干什么用的,移动文件或重命名文件