【问题标题】:Why is my symbolic link creating a file and not a folder?为什么我的符号链接创建的是文件而不是文件夹?
【发布时间】:2020-05-23 12:26:37
【问题描述】:

我想创建一个指向文件夹的符号链接。以下命令将创建一个带有链接名称的文件,但我正在尝试链接到源文件夹。我做错了什么?

ln -s /Users/me/somefolder 某个文件夹

这会在我的当前目录中创建一个文件“somefolder”。如何创建指向文件夹及其内容的符号链接?

谢谢!

【问题讨论】:

  • 执行 $ ls -l somefolder 会看到什么
  • 是的,它会创建一个文件:一个指向您的文件夹的符号链接。每当访问它时,它将被视为一个文件夹。别担心。
  • 谢谢你们。这似乎是正确的.. 但如果我执行“cd somefolder”,我会得到“没有这样的文件或文件夹 someFolder”
  • 小写某个文件夹?
  • 只是一个错字.. 我无法 cd 进入符号链接

标签: linux macos symlink


【解决方案1】:

您需要使用绝对路径名来创建链接。 例如,我现在在

$ pwd
/home/alex/my_folder

我正在我的 pwd(当前工作目录)下的子目录中创建指向文件夹“directoryA”的符号链接:

 $ ln -s $PWD/directoryA $PWD/temp/link_to_directoryA

在这种情况下,变量$PWD 保存了我的工作目录的绝对路径。 你当然可以使用你的绝对路径,而不需要像这样的任何变量:

 $ ln -s /home/alex/my_folder/directoryA /home/alex/my_folder/temp/link_to_directoryA

【讨论】:

    【解决方案2】:

    不创建目录是一种预期行为。

    当你这样做时

      ls -ali
    

    它应该显示以;开头的东西

      lrwxrwxrwx
    

    其中"l"代表符号链接,可以使用cd进行遍历。

    注意: 当您提供无效的源路径时,ln 命令不会报错。当您尝试 cd in 时,这将导致错误消息。

    【讨论】:

    • 我愿意。但我不能 cd 进入目录。 "somefolder: 找不到文件或文件夹"
    • @Nick,尝试写绝对路径。从根目录开始。
    • 你的意思是为了目标?
    • 我想我遇到了问题。当您符号链接到不存在的路径或目标文件时,它不会抱怨。当你想 cd 进入时,它会显示“无目录”。
    • 这是一个旧线程,但以防万一它为其他人省去了一些麻烦,值得注意的是,您要链接的文件夹的路径本身不能包含符号链接。回想起来非常明显,但我已经习惯于键入 cd www/folder/...,以至于我完全忘记了 www 只是指向 public_html 的符号链接。因此,每当我尝试在使用 www 的网站中创建文件夹的快捷方式时,都会遇到与 OP 相同的错误。
    【解决方案3】:

    您需要位于创建符号链接的同一目录中

    例如:

    cd /Users/me
    ln -s somefolder somefolderNewName

    【讨论】:

      【解决方案4】:

      聚会迟到了.. 这对我有用..

      如果你想创建一个从 sourceFolder 到 destinationFolder 的符号链接 这样做时,您应该位于destinationFolder“parentOfDestinationFolder”的父级中。

      【讨论】:

        【解决方案5】:

        我想你有你想要的,只是你不知道而已。链接在目录中有一个条目,就像数据文件或目录一样。如果您在创建链接的目录中运行ls -l,您可以最清楚地看到这一点。

        您可以像使用目录一样使用您的链接,例如:

        $ cd somefolder
        

        您可能还想知道,如果您以这种方式更改目录,则 somefolder 的父级将是包含链接的目录。如果你不想这样,请使用:

        $ cd -P somefolder
        

        【讨论】:

        • 这很奇怪。我可以 ls -i 并查看链接。但我不能 cd 进去。
        • 也许您的大小写不一致?为了理智起见,也许换个名字再试一次?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-09-09
        • 1970-01-01
        • 2015-07-16
        • 2015-01-29
        • 1970-01-01
        • 2013-06-19
        • 1970-01-01
        相关资源
        最近更新 更多