如何在 Linux 中对文件进行符号链接? [关闭]

问:

关闭。此问题不符合 Stack Overflow 准则。它目前不接受答案。我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为 Stack Overflow 的主题。 3年前关闭。改进这个问题

我想在 Linux 中建立一个符号链接。我已经编写了这个 Bash 命令,其中第一个路径是我想要链接到的文件夹,第二个路径是编译的源。

ln -s '+basebuild+'/IpDome-kernel/kernel /home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal 

这个对吗?

答1:

huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感

创建一个新的符号链接(如果符号链接已经存在,将会失败):

ln -s /path/to/file /path/to/symlink

要创建或更新符号链接:

ln -sf /path/to/file /path/to/symlink

@micapam ln 语法类似于 cp 语法,例如 source destination。

这是给你的助记符: l(i)n(k) -s(ymbolic) (最后一个参数是可选的这一事实有助于你确定它不是目标)(顺便说一句,省略符号链接的路径在当前目录中创建一个与目标具有相同基本名称的链接)

@micapam 正如 cp 是 CoPy,ln 是 LiNk。第一个和第三个字母。

我花了几分钟试图弄清楚为什么这对我不起作用。它创建了一个自循环链接。似乎 /path/to/file 应该是绝对的,而不是相对于“当前文件夹”。也许在答案中指出这一点?

@AbhishekAnand 已经有几年了,但我只是想说明它确实适用于相对路径;它只需要相对于生成的符号链接的目录而不是当前目录。你写的第一个路径参数实际上是逐字逐句的,将在符号链接中的文本;这就是为什么,当它是相对的时,它必须是相对于链接的。

答2:

huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求

ln -s TARGET LINK_NAME

-s 使其具有象征意义。

目标& LINKNAME 是更好的记忆方式。顺便说一句,删除符号链接使用:unlink LINK_NAME

我喜欢这样表述:ln -s where-the-symlink-should-point where-to-place-the-symlink-itself。

@Silvan,您可以通过 rm 删除符号链接,但大多数人不知道删除尾随的 /。

答3:

保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com

ln -s EXISTING_FILE_OR_DIRECTORY SYMLINK_NAME

比公认的答案更好,并且包含明确的简洁性。

除了它不是新的符号链接名称。它是新符号链接的名称或完整路径(相对于 cur dir 或绝对路径),包括名称。

ln -s EXISTING_FILE_OR_DIRECTORY {optional path to/}SYMLINK_NAME 并且不要在符号链接上加上斜杠,因为它不是目录

比@cyborg 的回答更好、更容易理解

答4:

huntsbot.com提供全网独家一站式外包任务、远程工作、创意产品分享与订阅服务!

ln -s target linkName

您可以在此处查看手册页:

http://linux.die.net/man/1/ln

很高兴提及“目标”而不仅仅是“文件”

答5:

huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。

(因为 ASCII 图片值一千个字符。)

箭头可能是一个有用的助记符,尤其是因为它在 Emacs 的 dired 中看起来几乎完全一样。

和大图,所以你不会把它与 Windows 版本混淆

Linux:

ln -s target <- linkName

视窗:

mklink linkName -> target

您也可以将这些视为

ln -s "to-here" <- "from-here"
mklink "from-here" -> "to-here"

from-here 不应该存在,它要被创建,而 to-here 应该已经存在 (IIRC)。

(我总是混淆各种命令和参数是否应该涉及预先存在的位置,或者要制作的位置。)

编辑:对我来说,它仍然在慢慢下沉;我在笔记中写了另一种方式。

ln -s (target exists) (link is made)
mklink (link is made) (target exists)

在 Emacs 的 dired 中,这非常简单,只需将光标放在目标上,按 S,然后键入要在其中创建链接的目录。缩短想象所需结果和打字之间的差距。请参阅gnu.org/software/emacs/manual/html_node/emacs/…。

我的助记符打开:ln -s Original Newfile (symlink)

这对我有用

ON 的另一个助记词:ln -s oldname newname,Go OS 库中也使用了这些词golang.org/pkg/os/#Symlink

答6:

打造属于自己的副业,开启自由职业之旅,从huntsbot.com开始!

ln -s source_file target_file

http://unixhelp.ed.ac.uk/CGI/man-cgi?ln

与 man ln 相比,这是“目标”的相反定义,将其称为 ln -s TARGET LINK_NAME

答7:

一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会

对于原来的问题:

'ln -s '+basebuild+'/IpDome-kernel/kernel /home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal'

这确实会从文件/目录创建一个 symbolic link (-s):

/IpDome-kernel/kernel

到你的新链接

/home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal

这里有一些方法可以帮助您记住:

首先是 man page for ln。您可以通过在 google 中搜索“man ln”来访问它,或者只需打开终端窗口并输入 man ln,您将获得相同的信息。手册页明确指出:

ln [OPTION]… [-T] TARGET LINK_NAME(第一种形式)

如果您不适合每次都必须搜索或阅读手册页,那么您可能会更容易记住所有 nix 命令的工作方式相同:

cp /file/that/exists /location/for/new/file
mv /file/that/exists /location/its/moving/to
ln /file/that/exists /the/new/link

cp 将当前存在的文件(第一个参数)复制到一个新文件(第二个参数)。 mv 移动文件当前存在的文件(第一个参数)到一个新位置(第二个参数) 同样,ln 将当前存在的文件(第一个参数)链接到一个新链接(第二个参数)*

我想建议的最后一个选项是您可以创建自己的手册页,这些手册页易于阅读且(对您而言)易于查找/记住。只需制作一个简单的 shell 脚本,即可为您提供所需的提示。例如:

在您的 .bash_aliases 文件中,您可以放置以下内容:

commandsfx() {
    echo "Symlink:  ln -s /path/to/file /path/to/symlink"
    echo "Copy:     cp /file/to/copy /destination/to/send/copy"
}

alias 'cmds'=commandsfx

然后,当您需要它时,只需从命令行键入 cmds,您就会以一种可以快速阅读和理解的方式获得正确的语法。您可以使这些功能尽可能高级,以获得您需要的信息,这取决于您。您甚至可以使它们具有交互性,因此您只需要按照提示进行操作即可。例如:

makesymlink() {
    echo "Symlink name:"
    read sym
    echo "File to link to:"
    read fil
    ln -s $fil $sym
}

alias 'symlink'=makesymlink

  • 很明显,它们都可以采用不同的参数并做不同的事情,并且可以在文件和目录上工作…但前提是相同的 ♦ - 使用 bash shell 的示例

答8:

huntsbot.com – 高效赚钱,自由工作

ln [-Ffhinsv] source_file [target_file]

    link, ln -- make links

        -s    Create a symbolic link.

    A symbolic link contains the name of the file to which it is linked. 

    An ln command appeared in Version 1 AT&T UNIX.

答9:

huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求

在 Linux 上创建符号链接或软链接:

打开 Bash 提示符并键入下面提到的命令以创建指向您的文件的符号链接:

A) 转到您要创建软链接的文件夹并输入如下所述的命令:

$ ln -s (path-to-file) (symbolic-link-to-file)
$ ln -s /home/user/file new-file

B)转到您的新文件名路径并输入:

$ ls -lrt (To see if the new-file is linked to the file or not)

例子:

user@user-DT:[~/Desktop/soft]# ln -s /home/user/Desktop/soft/File_B /home/user/Desktop/soft/File_C
user@user-DT:[~/Desktop/soft]# ls -lrt
total 0
-rw-rw-r-- 1 user user  0 Dec 27 16:51 File_B
-rw-rw-r-- 1 user user  0 Dec 27 16:51 File_A
lrwxrwxrwx 1 user user 31 Dec 27 16:53 File_C -> /home/user/Desktop/soft/File_B


Note: Where, File_C -> /home/user/Desktop/soft/File_B  Means, File_C is symbolically linked to File_B

答10:

huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求

ln -s sourcepath linkpathname

笔记:

-s 创建符号链接而不是硬链接

答11:

huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。

如果您位于要创建符号链接的目录中,则忽略第二个路径。

cd myfolder
ln -s target

它将在 myfolder 内创建 target 的符号链接。

一般语法

ln -s TARGET LINK_NAME

原文链接:https://www.huntsbot.com/qa/LdVA/how-can-i-symlink-a-file-in-linux?lang=zh_CN&from=csdn

一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值