Mac ln -s 命令无响应,但之前可以运行

Mac ln -s 命令无响应,但之前可以运行

对于我犯的任何新手错误,我提前表示歉意...我是一名 PC 用户,最近因为新工作而进入了 Mac 的世界...

运行 OS X Yosemite 10.10.5 PHP 版本 5.5.27 Apache 版本 2.4.16 (Unix)

我一直在尝试设置和运行 localhost 来本地开发网站。我曾经成功完成过一次 - localhost 本身运行正常,没有任何问题。

尝试在 localhost 使用的站点文件夹和站点文件实际存储位置之间创建符号链接时出现问题(此位置无法更改)。
(我也知道文件名中使用空格的坏习惯,但这些站点已经创建)

我完全按照本教程中的说明进行操作,一开始没有任何问题。 http://ole.michelsen.dk/blog/setup-local-web-server-apache-php-osx-yosemite.html

我已经设置了一个站点并使用 ln -s '~/Dropbox/Shared Sites/SITENAME ~/Sites/SITENAME' 创建的符号链接,这里完全没有问题(SITENAME 是站点文件所在的目录)

但是,我现在正尝试添加第二个站点。使用上面的命令,终端变得无响应。下一行添加了一个 >,但似乎没有运行任何命令(符号链接不起作用)。我可以输入,但没有执行任何命令。按 CTRL+C 可使终端返回到先前的状态,它将再次接受命令。所有其他命令似乎都可以正确运行。

我已验证该目录存在,并能够通过 cd 进入该目录。我还尝试在父文件夹中运行 ln -s '/SITENAME ~/Sites/SITENAME',结果相同。我还尝试使用 sudo 运行该命令

我也尝试下载并使用 iTerm,结果相同。

还尝试为第三个/单独的站点创建符号链接,结果同样如此。

有人可以解释为什么这个命令在以前工作时似乎停止了运行,以及如何修复或解决这个问题以将其他站点添加到本地主机?

谢谢 :)

答案1

为了让其他可能遇到同样问题的人清楚了解(我不是唯一一个,对吧?:S):

感谢@TOOGAM - 解决方案是删除撇号/引号和反而,用 \ 转义空格 - 因此现在正在运行的命令是

ln -s ~/Dropbox/Shared\ 站点/站点名称 ~/站点/站点名称

仍然不明白为什么它最初可以使用撇号,但问题还是解决了!:)

答案2

对于其他加入的人,还请参见 Roxy Walsh 发布的答案,其中提供了有关该问题的一些其他详细信息,这些信息对于理解我的答案提供的一些详细信息是必需的。

好的,事情是这样的:
撇号从波浪号中消失了。

试试这个:

回声〜
回声'〜'

您会发现,第一个命令将 ~ 扩展至您的主目录。在第二个命令中,您会看到一个真正的波浪符号。波浪符号已“转义”。转义意味着指定该字符需要被视为普通字符,而不是具有特殊含义。

现在,您需要做的是转义空格(使用反斜杠即可),但不要转义波浪号。空格通常具有特殊含义,即分隔参数。您不希望分隔它们:“Shared Sites/”中的空格都是一个目录的一部分。该特定空格并非旨在告诉“ln”命令您已完成指定第一个文件/目录,并且即将指定下一个文件/目录。因此需要对该空格进行转义。

根据您展示的示例,以下内容也可以起作用:

ln -s ~/'Dropbox/共享站点/站点名称' ~/站点/站点名称

相关内容