Linux命令之 ln命令

warning: 这篇文章距离上次修改已过1415天,其中的内容可能已经有所变动。

ln命令可以为某一个文件在另外一个位置建立一个同步的链接。类似于 Windows 中的快捷方式,可以有效节约磁盘空间。

warning:ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;

链接又分软链接硬链接两种

软链接(symbolic link)硬链接(hard link)
使用ln –s 源文件 目标文件创建使用ln 源文件 目标文件创建
以路径的形式存在。类似于Windows中的快捷方式以文件副本的形式存在。但不占用实际空间
可以跨文件系统不可以跨文件系统
可以对一个不存在的文件名进行链接只有在同一个文件系统中才能创建
可以对目录进行软链接不允许给目录创建硬链接
warning:无论是软链接还是硬链接,文件都会保持同步变化。
ln指令用在链接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。

命令语法

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

附加参数

参数说明
-b删除,覆盖以前建立的链接
-d允许超级用户制作目录的硬链接
-f强制执行
-i交互模式,文件存在则提示用户是否覆盖
-n把符号链接视为一般目录
-s软链接(符号链接)
-v显示详细的处理过程
-S-S<字尾备份字符串>--suffix=<字尾备份字符串>
-V-V<备份方式>--version-control=<备份方式>

常用范例

给文件创建软链接

ln -s test test_sl

给文件创建硬链接

ln test test_hl

建立连接文件建立连接文件


删除源文件删除源文件

warning:删除源文件后,硬链接文件并没有受到影响;软链接文件会被系统提示源文件已经不存在

重建源文件重建源文件

warning:重建源文件后,软链接显示正常,说明已经链接成功,和新建源文件保持一致;而硬链接文件并没有受到新建源文件影响,硬链接文件的内容还是保留了删除的前源文件内容,说明硬链接已经失效

将文件链接为已存在目录

ln test test_dir

连接到已存在目录,则复制文件到目录中连接到已存在目录,则复制文件到目录中


给目录创建软链接

ln -sv /home/link_dir /home/link_dir2

目录创建软链接目录创建软链接

warning:
  1. 目录只能创建软链接
  2. 目录创建链接必须用绝对路径,相对路径创建会不成功,会提示:符号连接的层数过多 这样的错误
  3. 在链接目标目录中修改文件都会在源文件目录中同步变化
评论已关闭