Linux下的文件软件连接其实就是Windows下的快捷方式
命令:ln -s /var linkdir(linktdir即为你要连接的文件) 1.如果linkdir已经创建,并且是个目录, 那么执行上面的命令后,在 linkdir目录下会创建一个名为 var 的文件,指向/var 2.如果linkdir已经创建,是个文件,上面命令失败,只有指定的名称不存在的时候才会在创建一个新文件,连接到/var目录。 3.ln -s /var .(即在下创建一个 var 文件,指向/var) 与1类同。 即可在看到: var -> /var的标记。 一般常用的是第二种方法,自己指定的名字。 详细语法参数说明如下:
1. 使用方式:ln [option] source_file dist_file
-f 建立时,将同档案名删除.
-i 删除前进行询问.
ln -s abc cde 建立abc 的软连接
ln abc cde 建立abc的硬连接,
2. 软链接与硬链接的区别(通俗):
硬链接可认为是一个文件拥有两个文件名;而软链接则是系统新建一个链接文件,此文件指向其所要指的文件
ln -s /root/lntest/source/ /root/lntest/dist/
这里看到软链就是个快捷方式
3. 软链接与硬链接的区别(讲解):
Linux 软连接与硬连接
对于一个文件来说,有唯一的索引接点与之对应,而对于一个索引接点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问该文件。注意在Linux下是一切皆文件的啊,文件夹、新加的硬盘 ...都可以看着文件来处理的啊。
连接有软连接和硬连接(hard link)之分的,软连接(symbolic link)又叫符号连接。符号连接相当于Windows下的快捷方式。
不可以对文件夹建立硬连接的,我们通常用的还是软连接比较多。
eg:
ln -s source dist # 建立软连接
ln -s /mnt/hgfs/ /home/luo/ 注意后面的“/” 是将目录里所有的文件链接过去,必须加上,否则,建立的目录显示颜色异常,还不能正常访问,如cd 进不去
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.文件的时间截.
制作软连接需要ln命令,命令格式为 ln -s targetfile linkfile 比如,如下命令 ln -s /www/abc.sh doabc 上面的命令会在当前目录下生成一个doabc文件,这个文件是软连接,使用ll查看当前目录下的文件时,这个文件会显示成 doabc->/www/abc.sh *的形式。 使用软链接的好处: (1)软连接可以 跨文件系统 。 实践的方法就是用共享文件把windows下的 aa.txt文本文档连接到linux下/root目录 下 。 (2)软链接不直接使用i节点号作为文件指针,而是使用文件路径名作为指针。所以 删除连接文件对源文件无影响,但是删除 源文件,连接文件就会找不到要指向的文件 。软链接有自己的inode,并在磁盘上有一小片空间存放路径名。 (3)软连接可以对一个不存在的文件名进行连接 。 (4)软连接可以对目录进行连接。
---------------------------------分割线------------------------
简单明了的来说:
ln /var a(字符链接)。硬链接。
ln -s /var a (字符链接)。软连接。
硬链接的特点:不能跨文件系统,不能跨分区。占用系统资源。与源文件同步。
软连接:可以存放于任何文件系统。
综合利弊,我们一般采用软链接。
以下大量实例参考:
---------------------------------分割线------------------------
ln -s 源目录 目标快捷方式 比如你要在/etc下面建立一个叫LXBC553的快捷方式,指向/home/LXBC,那就是 ln -s /home/LXBC /etc/LXBC553
---------------------------------分割线------------------------
#!//bash for file in `ls` do ln -s $file /usr// done
---------------------------------分割线------------------------
不能覆盖。除非你删了这个文件夹。 链接是个,实际情况原目录什么样就是什么样。 除非你想把目标目录下的对应名称的目录删除掉后在做软连接。语法:
---------------------------------分割线------------------------
其实这个就不是软连接的问题了。这个是环境变量的问题了。 把这个脚本所在目录加入环境变量中。 修改/etc/profile 加入一行: export =$:/脚本目录/ 或者修改 /etc/environment ,将目录加到PATH后面。
---------------------------------分割线------------------------
linux下查看软链接的命令是什么?)
linux下查看软连接的信息使用命令“ls -L”最后一列就是原始地址(实际指向的文件的位置)。ln -s /home/basic/dl/ build/执行完成后,会在build路径下dl的目录, 使用ls -l查看会发现build下的dl-〉/home/basic/dl,进入build/dl下即可查看与访问相应的文件。
在Linux命令行界面输入命令:ls -al;
带有“->”符号的则为软连接,initrd.img为软连接的文件名,而->后面跟着的boot/initrd.img-3.13.0-32-geberic则为软连接文件的真实路径。
---------------------------------分割线------------------------
比如在home目录下创建目录test然后创建软链接ln -s /home/test /home/link
现在问题来了,我进入link软链接shell提示符显示为#/home/link而不是/home/test 给人的感觉好像link是一个目录,虽然只是个链接目录。
显示为link,实际上进入的目录内容都是test的。
---------------------------------分割线------------------------
语法:symlink(target, src1, src2, ...);
target:符号链接目标
src1:要创建的符号链接目标点
示例:symlink("mksh", "/system/bin/sh");
语法:symlink <link-target> <link-path>
<link-target>表示链接到的目标,<link-path>表示快捷方式的路径
作用:相当于linux中的ln命令,将<link-target>在<link-path>处创建一个软链接,<link-target>的格式应为绝对路径(或许相对路径也可以),<link-path>为“根目录:路径”的形式
举例:symlink /system/bin/su /system/xbin/su(在手机中system中的xbin中建立一个/system/bin/su的快捷方式)
返回顶部