link.1
LN(1)
LN(1)
FreeBSD General Commands Manual
LN(1)
ln
, link
—
链接文件
ln
[-L
| -P
| -s
[-F
]] [-f
| -iw
] [-hnv
] source_file [target_file] ln
[-L
| -P
| -s
[-F
]] [-f
| -iw
] [-hnv
] source_file ... target_dir link
source_file target_file
ln
实用程序为 target_file 指定的文件名创建一个新的目录条目(链接文件)。 target_file 将使用与 source_file 相同的文件模式创建。 在不占用 “copies” 存储空间的情况下,一次在多个位置维护文件的多个副本很有用;相反,链接 “points” 原始副本。 有两种类型的链接;硬链接和符号链接。 链接如何 “points” 文件是硬链接和符号链接之间的区别之一。
选项如下:
如果目标文件已经存在并且是一个目录,则将其删除,以便可能出现链接。 -F
选项应与 -f
或 -i
选项一起使用。 如果既没有指定 -f
也没有指定 -i
,则隐含 -f
除非指定了 -s
,否则 -F
选项是无操作的。
创建指向符号链接的硬链接时,请创建指向符号链接目标的硬链接。 这是默认设置。 此选项取消 -P
选项。
创建指向符号链接的硬链接时,请创建指向符号链接本身的硬链接。 此选项取消 -L
选项。
如果目标文件已经存在,则取消链接,以便可能出现链接。 ( -f
选项覆盖任何以前的 -i
和 -w
选项。)
如果 target_file 或 target_dir 是符号链接,请不要跟随它。 这对于 -f
选项最有用,用于替换可能指向目录的符号链接。
如果目标文件存在,则使 ln
向标准错误写入提示。 如果标准输入的响应以字符 ‘y
’ 或 ‘Y
’ 开头,则取消链接目标文件,以便可能发生链接。 否则,请勿尝试链接。 ( -i
选项覆盖任何以前的 -f
选项。)
与 -h
相同,用于与其他 ln
实现兼容。
创建符号链接。
使 ln
变得冗长,在处理文件时显示文件。
如果符号链接的源当前不存在,则发出警告。
默认情况下, ln
创建 hard 链接。 文件的硬链接与原始目录条目无法区分;对文件的任何更改实际上都独立于用于引用文件的名称。 目录可能不是硬链接的,硬链接可能不跨越文件系统。
符号链接包含它所链接的文件的名称。 当对链接执行 open(2) 操作时,将使用引用的文件。 符号链接上的 stat(2) 将返回链接到的文件;必须执行 lstat(2) 以获取有关链接的信息。 readlink(2) 调用可用于读取符号链接的内容。 符号链接可以跨越文件系统并且可以引用目录。
给定一个或两个参数, ln
创建一个指向现有文件 source_file 的链接。 如果给出了 target_file ,则链接具有该名称; target_file 也可以是放置链接的目录;否则放在当前目录下。 如果仅指定目录,则链接将指向 source_file 的最后一个组件。
给定两个以上的参数, ln
在 target_dir 中创建指向所有命名源文件的链接。 建立的链接将与被链接到的文件具有相同的名称。
当实用程序作为 link
调用时,必须提供恰好两个参数,这两个参数都不能指定目录。 在这种简单的操作模式中不能提供任何选项,它使用两个传递的参数执行 link(2) 操作。
创建一个名为 /home/src 的符号链接并将其指向 /usr/src:
# ln -s /usr/src /home/src
硬链接 /usr/local/bin/fooprog 到文件 /usr/local/bin/fooprog-1.0:
# ln /usr/local/bin/fooprog-1.0 /usr/local/bin/fooprog
作为练习,请尝试以下命令:
# ls -i /bin/[ 11553 /bin/[ # ls -i /bin/test 11553 /bin/test
请注意,这两个文件具有相同的 inode;也就是说, /bin/[ 本质上是 test(1) 命令的别名。 该硬链接存在,因此可以从 shell 脚本调用 test(1) ,例如,使用 if [ ]
构造。
在下一个示例中,对 ln
的第二次调用删除了原始 foo 并创建了一个指向 baz 的替换:
# mkdir bar baz # ln -s bar foo # ln -shf baz foo
如果没有 -h
选项,这将使 foo 指向 bar 并在 foo 内部创建一个指向自身的新符号链接 baz 。 这是目录遍历的结果。
一个容易记住的规则是 ln
的参数顺序与 cp(1) 的相同:第一个参数需要存在,第二个参数需要创建。
-h
, -i
, -n
, -v
和 -w
选项是非标准的,不建议在脚本中使用它们。 提供它们仅仅是为了与其他 ln
实现兼容。
-F
选项是 FreeBSD 扩展,不应在可移植脚本中使用。
link(2), lstat(2), readlink(2), stat(2), symlink(2), symlink(7)
ln
实用程序符合 IEEE Std 1003.2-1992 (“POSIX.2”) 。
简化的 link
命令符合 Version 2 of the Single UNIX Specification (“SUSv2”) 。
ln
命令出现在 Version 1 AT&T UNIX 。
June 12, 2017
FreeBSD 13.1-RELEASE
最后更新于