Linux命令之 ln命令
warning:
这篇文章距离上次修改已过1711天,其中的内容可能已经有所变动。
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:
- 目录只能创建软链接
- 目录创建链接必须用绝对路径,相对路径创建会不成功,会提示:符号连接的层数过多 这样的错误
- 在链接目标目录中修改文件都会在源文件目录中同步变化