
正文
linux连接节点命令 linux连接器
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
linux 设置软连接
软连接是linux中一个常用命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接。当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在其它的 目录下用ln命令链接(link)就可以,不必重复的占用磁盘空间。
软连接也叫符号连接(Symbolic Link),有点类似于Windows的快捷方式。它实际上是一个特殊的文件,在符号连接中文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
具体用法是:ln -s 源文件 目标文件。
当前路径创建sp-transparent-order 引向/app/sp-transparent-order/sp-transparent-order.jar
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
相关问答
Q1: LINUX中,使多个文件名指向同一个索引节点是通过什么命令实现的,并说明该命令的用法
LN(1) LN(1)
NAME
ln -在文件之间建立连接
总览
ln [options] source [dest]
ln [options] source...directory
POSIX 选项:
[-f]
GNU 选项(缩写):
[-bdfinsvF] [-S backup-suffix] [-V {numbered, existing, simple}]
[--help] [--version] [--]
描述
在Unix世界里有两个’link’(连接)概念,一般称之为硬连接和软连接。 一个硬
连接仅仅是一个文件名。(一个文件可以有好几个文件名,只有将 最后一个文件
名从磁盘上删除,才能把这个文件删掉。文件名的个数是由 ls(1)来确定的。 所
有的文件名都处于同一个状态,也就没有什么源名字 之说。通常文件系统里的一
个文件的所有名字包含着一样的数据信息,不 过这样也不是必需的。)一个软连
接(或符号连接)是完全不同的:它是 一个包含了路径信息的小小的指定文件。
因此,软连接可以指向不同文件 系统里的文件(比如由NFS装载的不同机器文 件
系统上的文件),甚至可以 指向一个不一定确实存在的文件。在软连接文件被访
问(系统调用open(2) 或stat(2))的时候,操作系统用该文件所包含的路径替换
该文件的访问介 入点,从而实现对所指文件的访问。(用命令rm(1)和unlink(2)
可以删除 连接,但不是删除该文件所指向的文件。 系 统 指 定 调 用lstat(2)
和readlink(2) 来读取连接文件与其所指文件的状态。到底是对软连接文件操作
,还是对被 指向文件操作,由于不同操作系统件存在不同的系统调用,而存在着
差异。)
ln 在文件间产生连接。缺省时,产生硬连接,有-s选项,则产生符号(软)连接
。
如果仅仅只给出一个文件名,那么ln将在当前目录里产生这个文件的连接,也 就
是说,以该文件(的最后一个)名称等同的名字在当前目录里产生一个连接(GNU
范围内);如果最后一个参数是一个已存在的目录名, ln 将在那个目录里给 每
一 个 源 文 件 用 以 与 源 文 件 相 同 的文件名产生连接,(不同情况见以
下--no-dereference的描述);如果只给出两个文件名,ln将产生源文件的连 接
;如果最后一个参数不是一个目录名或多于两个文件名,则报错。
缺 省时,ln不删除已存在的文件或符号连接。(因此,它可以被用来锁定目标文
件,即当dest已经不存在时)但选项-f可以强制执行。
在已存在的实现中,只有超级用户才能建立目录的硬连接。 POSIX 禁止系 统 调
用link(2)和ln建立目录的硬连接(但是允许在不同的文件系统间建立硬连接)。
POSIX 选项
-f 删除已存在的目的文件。
GNU 选项
-d, -F, --directory
允许超级用户建立目录硬连接。
-f, --force
删除已存在的目的文件。
-i, --interactive
提示是否删除已存在的目的文件。
-n, --no-dereference
当所给出的目的文件名是一个目录的符号连接时,将其视为一般文件处理
。
当目的目录名是一个确实存在的目录(不是一个符号连接)时,不进行模
糊处理,而在那个目录里建立连接。但是当所指定的目的目录名是一个符
号连接时,有两种方式来对待用户的要求。 ln 会视目的为一个普通目录
,并且在里面建立连接。或者如同符号连接本身一样地视其为一个非目录
。 这种情况下,ln 将在建立新连接之前删除或备份这个符号连接。缺省
地,把符号连接视为普通目录来对待。
-s, --symbolic
建立符号连接以替代硬连接。在不支持符号连接的系统上,这个选项仅仅
会产生一个错误提示而已。
-v, --verbose
在建立连接前显示所操作的文件名。
GNU 备份选项
对 于 想备份那些有可能被覆盖、改写或者被破坏的文件, GNU提供了比如:cp,
mv, ln, install和patch等命令。可以使用-b参数生成备份文件。备份文件的 名
称 由-V 参 数指定。假如备份文件的名称是通过原文件名加后缀而得到,那么要
用-S参数来指定这个后缀。
-b, --backup
备份文件。
-S SUFFIX,-suffix=SUFFIX
在备份文件后添加"SUFFIX"(你的后缀)。如果不使用该参数,则使用环境
变 量 SIM_PLE_BACHUP_SUFFIX,如果该环境变量没有设置,则缺省地使
用’~’。
-V METHOD,-version-control=METHOD
指定备份文件如何命名。参数"METHOD"可以是’numbered’(或’t’),如 果
不 使用该参数,则使用环境变量VERSION_CONTROL,如果该环境变量没有
设置,则缺省地使用
正确有效的METHOD参数对应于Emacs变量’version-control’。(唯一被 承
认的缩写):
t, numbered 产生数字标记形式的备份文件。
nil, existiong 对已有数字标记备份的文件进行数字备份,而简单备份
其他类型文件。
never, simple 总是进行简单备份。
GNU 标准参数
-help 在标准输出上显示使用信息并顺利退出。
-version
在标准输出上显示版本信息并顺利退出
-- 终端参数列表。
环境变量
变量LANG, LC_ALL, LC_COLLATE, LC_CTYPE和LC_MESSAGES具有通常意义。 在GNU
版本里,变量 SIMPLE_BACKUP_SUFFIX和VERSION_CONTROL控制备份文件的命名。
遵循
POSIX 1003.2,尽管POSIX 1003.2(1996)没有讨论软连接。软连接在BSD中有介绍
,在System V release3(或更老版本)系统中不出现。
另见
ls(1), rm(1), link(2), lstat(2), open(2), readlink(2), stat(2),
unlink(2)
注意
本文出自应用文档-4.0,其他版本肯定会有微小差别。任何添加或纠错意见请寄
:aeb@cwi.nl。程序Bugs请告知:fileutils-bugs@gnu.ai.mit.edu
[中文版维护人]
Surran email
[中文版最新更新]
2000/10/19
[中国Linux论坛man手册页翻译计划]
GNU fileutils 4.0 November 1998 LN(1)
Q2: linux 链接的使用 创建和删除符号连接(软、硬链接)
1 . 使用方式 :ln [option] source_file dist_file (source_file是待建立链接文件的文件,dist_file是新创建的链接文件)
-f 建立时,将同档案名删除.
-i 删除前进行询问.
ln -s abc cde 建立abc 的软连接
ln abc cde 建立abc的硬连接,
对于一个文件来说,有唯一的索引接点与之对应,而对于一个索引接点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问该文件。注意在Linux下是一切皆文件的啊,文件夹、新加的硬盘 ...都可以看着文件来处理的啊。
连接有软连接和硬连接(hard link)之分的,软连接(symbolic link)又叫符号连接。符号连接相当于Windows下的快捷方式。
不可以对文件夹建立硬连接的,我们通常用的还是软连接比较多。
eg:
ln -s source dist # 建立软连接
ln source dist # 建立硬连接
软链接实际上只是一段文字,里面包含着它所指向的文件的名字,系统看到软链接后自动跳到对应的文件位置处进行处理;相反,硬联接为文件开设一个新的目录 项,硬链接与文件原有的名字是平权的,在Linux看来它们是等价的。由于这个原因,硬链接不能连接两个不同文件系统上的文件。
(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.文件的时间截.
最后 删除符号链接,有创建就有删除
rm -rf symbolic_name 注意不是rm -rf symbolic_name/
在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”已存在,就不创建链接。
下面举一些例子:
[ root@rekfan.com 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
[ root@rekfan.com test]# ln file2 file2hand
[ root@rekfan.com 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
[ root@rekfan.com 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中建立硬链接
如果使用了 ln –f existingfile newfile,如果newfile已经存在,则无论原来newfile是什么文件,只用当前用户对它有写权限,newfile就成为exisitngfile的硬链接文件。
尽管硬链接节省空间,也是Linux系统整合文件系统的传统方式,但是存在一下不足之处:
(1)不可以在不同文件系统的文件间建立链接
(2)只有超级用户才可以为目录创建硬链接。
软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。
建立软链接,只要在ln后面加上选项 –s,下面举个例子
[ root@rekfan.com 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
[ root@rekfan.com test]# ln -s file1 file1soft
[ root@rekfan.com 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/
[ root@rekfan.com 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
[ root@rekfan.com test]# rm -rf file1soft
[ root@rekfan.com 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
[ root@rekfan.com 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.文件的时间截.
linux连接节点命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux连接器、linux连接节点命令的信息别忘了在本站进行查找喔。







