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

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

这是正确的吗?


当前回答

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.

其他回答

ln -s EXISTING_FILE_OR_DIRECTORY SYMLINK_NAME

我发现男人信息中的术语“目标”和“目录”有点混淆。

目标是我们要符号链接到的文件夹和实际符号链接的目录(而不是您要符号链接的文件夹),如果有人遇到同样的困惑,不要感到孤独。

这是我对创建Symlink(在linux中)的解释:

ln -s /FULL/PATH/FOLDER-OR-FILE-SYMLINKING-TO NAME-OF-YOUR-SYMLINK

您可以导航到要创建符号链接的文件夹并运行命令,或者为符号链接指定FULL PATH,而不是NAME-of-your-symlink。

cd /FULL/PATH/TO/MY-SYMLINK-PARENT-FOLDER
ln -s /FULL/PATH/FOLDER-OR-FILE-SYMLINKING-TO NAME-OF-YOUR-SYMLINK

OR

ln -s /FULL/PATH/FOLDER-OR-FILE-SYMLINKING-TO /FULL/PATH/TO/MY-SYMLINK-PARENT-FOLDER/NAME-OF-YOUR-SYMLINK

我希望这对那些(仍然)有点困惑的人有所帮助。

链接基本上有两种类型:

符号链接(软):指向指示另一文件抽象位置的符号路径的链接

硬链接:链接到物理数据的特定位置。

示例1:

ln /root/file1 /root/file2

以上是一个硬链接的示例,您可以在其中获得物理数据的副本。

示例2:

ln -s /path/to/file1.txt /path/to/file2.txt

上述命令将创建到file1.text的符号链接。

如果你删除了源文件,那么你就不会有任何东西指向目标了。

当您这样做时:

ls-lai公司

您将看到符号链接有一个不同的inode编号。

有关详细信息,您可以阅读Linux操作系统上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_file target_file

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