首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解ln的用法

理解ln的用法
EN

Unix & Linux用户
提问于 2016-07-02 23:11:01
回答 2查看 5.2K关注 0票数 4

来自ln的coreutils手册

在文件之间建立链接。默认情况下,它生成硬链接;使用-s选项,它生成符号(或软)链接。简介:选项. -T目标链接名ln 选项.目标在选项..。目标..。目录选项. -t目录目标..。如果指定了两个文件名,则ln将从第二个文件创建一个指向第一个文件的链接。如果给定一个目标,则ln将在当前目录中创建指向该文件的链接。如果给出了--目标目录(-t)选项,或者如果最后一个文件是一个目录而没有指定目标目录(-T)选项,则ln使用目标名称创建一个指向指定目录中每个目标文件的链接。

黑体部分是什么意思?

具体而言,以下内容意味着什么?

  • “如果最后一个文件是目录,则失败”
  • “用目标的名字”

谢谢。

EN

回答 2

Unix & Linux用户

发布于 2016-07-02 23:41:38

这意味着,如果您到ln /path/to/files/* /path/to/some/directory/ln -t /path/to/some/directory/ /path/to/files/*,将在/path/to/some/directory/中创建一个指向每个匹配/path/to/files/*的文件的链接,其名称与原始文件的名称相同。

票数 8
EN

Unix & Linux用户

发布于 2016-07-02 23:35:19

我觉得http://linux.die.net/man/1/ln

让它更清晰。你有以下表格:

  1. 选项. -T目标LINK_NAME (第一种形式)
  2. 选项..。目标(第二种形式)
  3. 选项..。目标..。目录(第三份表格)
  4. 在选项. -t目录目标..。(第四种形式)

代码语言:javascript
复制
-t, --target-directory=DIRECTORY
specify the DIRECTORY in which to create the links
-T, --no-target-directory
treat LINK_NAME as a normal file

-T说,如果您传递两个参数,您绝对是指表单1(第二个arg是link_name),而不是3-换句话说,您希望确保没有意外地将目录作为第二个参数传递。

示例:

代码语言:javascript
复制
mkdir output
ln -s /etc/passwd output #OK passwd link goes into output/passwd

vs

代码语言:javascript
复制
mkdir output
ln -sT /etc/passwd output #FAIL; output is already taken and is a directory

链接-t,是-T的反面。它希望它后面的任何内容都是一个目录来放置链接,这样你就可以做如下的事情:

代码语言:javascript
复制
list_link_targets | xargs -d '\n' ln -s -t directory

这将是更具有挑战性的第三种形式。

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/293514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档