我想在Linux中创建一个符号链接。我编写了这个Bash命令,其中第一个路径是我想要链接到的文件夹,第二个路径是编译的源代码。
ln -s '+basebuild+'/IpDome-kernel/kernel /home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal
这是正确的吗?
我想在Linux中创建一个符号链接。我编写了这个Bash命令,其中第一个路径是我想要链接到的文件夹,第二个路径是编译的源代码。
ln -s '+basebuild+'/IpDome-kernel/kernel /home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal
这是正确的吗?
当前回答
ln -s TARGET LINK_NAME
其中-s使其具有象征意义。
其他回答
如果您位于要创建符号链接的目录中,则忽略第二个路径。
cd myfolder
ln -s target
它将在myfolder中创建目标的符号链接。
常规语法
ln -s TARGET LINK_NAME
ln -s source_file target_file
http://unixhelp.ed.ac.uk/CGI/man-cgi?ln
这是堆栈溢出,所以我假设您需要代码:
以下所有代码都假定您希望创建一个名为/tmp/link的符号链接,该链接链接到/tmp/realfile。
注意:虽然此代码检查错误,但它不会检查/tmp/realfile是否确实存在!这是因为死链接仍然有效,根据您的代码,您可能(很少)希望在真实文件之前创建链接。
外壳(bash、zsh…)
#!/bin/sh
ln -s /tmp/realfile /tmp/link
非常简单,就像您在命令行(即shell)上做的那样。所有错误处理都由shell解释器完成。这段代码假设您在/bin/sh有一个工作的shell解释器。
如果需要,您仍然可以使用$?变量,只有在成功创建链接时才会设置为0。
C和C++
#include <unistd.h>
#include <stdio.h>
int main () {
if( symlink("/tmp/realfile", "/tmp/link") != 0 )
perror("Can't create the symlink");
}
symlink仅在可以创建链接时返回0。在其他情况下,我使用perror来讲述更多的问题。
Perl
#!/usr/bin/perl
if( symlink("/tmp/realfile", "/tmp/link") != 1) {
print STDERR "Can't create the symlink: $!\n"
}
这段代码假设您在/usr/bin/perl上有一个perl5解释器。如果可以创建链接,symlink只返回1。在其他情况下,我会将失败原因打印到标准错误输出中。
要创建符号链接/软链接,请使用:
ln -s {source-filename} {symbolic-filename}
例如。:
ln -s file1 link1
ln -s target linkName
您可以在此处查看手册页:
http://linux.die.net/man/1/ln