记住 ln 参数顺序的技巧?

记住 ln 参数顺序的技巧?

我多年来一直ln编写符号链接,但我仍然得到错误的参数顺序。

这通常让我写:

ln -s a b

然后查看输出来提醒自己。

我总是想象a -> b自己读到的内容是这样,但实际上却恰恰相反b -> a。这感觉违反直觉,所以我发现我总是事后怀疑自己。

有人有任何提示可以帮助我记住正确的顺序吗?

答案1

我的想法ln是“就像cp。‘来源’需要放在第一位。”

答案2

我使用以下内容:ln有一个单参数形式(第 2 种形式在联机帮助页),其中只需要目标(因为在ln不知道目标的情况下如何工作)并ln在当前目录中创建链接。双参数形式是对单参数形式的补充,因此目标始终是第一个参数。

答案3

大多数 Unice 将ln命令记录为

ln source target

(我在这里省略选项等)

例子:

  • POSIX 标准

      ln [-fs] [-L|-P] source_file target_file
    
  • 开放BSD:

      ln [-fhLnPs] source [target]
    
  • 网络BSD自由BSD

      ln [-L | -P | -s [-F]] [-f | -iw] [-hnv] source_file [target_file]
    
  • 苹果系统

      ln [-Ffhinsv] source_file [target_file]
    
  • 索拉里斯

      /usr/bin/ln [-fns] source_file [target]
    
  • AIX

      ln [ -f | -n ] [ -s ] SourceFile [ TargetFile ]
    

GNUln手册很奇怪,它称source 目标target 链接名

忽略 GNU 对单词的选择,该实用程序遵循与ln例如mv和相同的语义cp目标是从创建的来源

所以,

ln -s a b

b将创建指向 的符号链接a。或者换句话说,是创建用作源的b符号链接的操作的目标。a

创建时注意象征性的链接,源只是一个表示符号链接应指向的字符串。通常不会进行检查来验证它是否指向任何有用的内容:

$ ln -s "hello world" README.txt
$ ls -l
total 0
lrwxr-xr-x  1 kk  wheel  11 Sep 15 11:39 README.txt -> hello world

关于 GNU 选择使用“目标”和“链接名称”而不是“源”后跟“目标”的个人想法:

似乎很明显,第二个参数(创建的内容)应该是“链接名称”,第一个参数(链接的目标)应该是“目标”。然而,只有当你使用链接。

当你创造链接,即您正在执行的操作ln,第二个参数,即创建的内容,是ln操作的“目标”,它是使用第一个参数“源”创建的。

这与其他基本工具的参数的类似“源”->“目标”顺序一起,使得非 GNU 文档看起来ln更加自然。

答案4

如果这对任何人有帮助:我已经习惯将其视为“ln什么 在哪里”,这帮助我记住第一个参数(“什么”)是现有文件,第二个参数(“哪里”)是放置(链接)它的位置。与大多数其他答案中的推理相反,这只不过是我在输入命令时可以在心里背诵的简洁短语,它可以作为记忆辅助。这可能不会对每个人都有用,但我怀疑它会对某些人有所帮助。

其他标准文件操作命令使用相同的约定会有所帮助,因此我可以对cp和执行相同的操作mv

相关内容