Comando Mac ln -s sem resposta, mas trabalhando anteriormente

1

Peço desculpas antecipadamente por qualquer erro de novato da minha parte ... Sou um usuário de PC recentemente colocado no mundo dos Macs por meio de um novo trabalho ...

Executando o OS X Yosemite 10.10.5 Versão do PHP 5.5.27 Apache versão 2.4.16 (Unix)

Eu tenho tentado configurar e executar o host local para desenvolver sites localmente. Eu fiz isso com sucesso uma vez - o próprio localhost está sendo executado sem problemas.

O problema surgiu ao tentar criar um link simbólico entre a pasta de sites usada pelo localhost e onde os arquivos do site são realmente armazenados (esse local não pode ser alterado). (Eu também estou ciente da má prática com espaços em nomes de arquivos, mas esses sites já estão criados)

Eu segui as instruções deste tutorial, até o final, sem problemas no começo. link

Eu tenho UM site configurado e trabalhando com um link simbólico criado usando ln -s '~ / Dropbox / Sites compartilhados / SITENAME ~ / Sites / SITENAME' Nenhum problema aqui (SITENAME sendo o diretório em que os arquivos do site estão)

No entanto, estou tentando adicionar um segundo site. Usando o comando acima, o terminal não responde. A > é adicionado à próxima linha, mas parece que nenhum comando é executado (o link simbólico não funciona). Eu posso digitar, mas nenhum comando é executado. Pressionar CTRL + C retorna o terminal ao estado anterior, onde ele aceitará os comandos novamente. Todos os outros comandos parecem rodar corretamente.

Eu verifiquei que o diretório existe e consigo fazer o cd para ele. Eu também tentei executar ln -s '/ SITENAME ~ / Sites / SITENAME' quando na pasta pai, com o mesmo resultado. Eu também tentei executar o comando com o sudo

Eu também tentei baixar e usar o iTerm, com o mesmo resultado.

Também tentamos criar um link simbólico para um terceiro / site separado, o mesmo novamente.

Alguém pode esclarecer por que esse comando parece ter deixado de funcionar quando trabalhava anteriormente e como corrigir ou contornar isso para adicionar sites adicionais ao host local?

Obrigado :)

    
por Roxy Walsh 20.10.2015 / 12:42

2 respostas

0

Por uma questão de clareza para qualquer outra pessoa que possa ter o mesmo problema (não posso ser o único, certo?: S):

Com agradecimentos ao @TOOGAM - a solução foi remover os apóstrofos / aspas e ao invés , escapar os espaços com um \ - então o comando que agora está funcionando é

ln -s ~ / Dropbox / Sites compartilhados / SITENAME ~ / Sites / SITENAME

Ainda não é mais sensato o porquê de ter funcionado originalmente com os apóstrofos, mas o problema foi resolvido da mesma forma! :)

    
por 20.10.2015 / 16:48
0

Para qualquer outra pessoa, veja também a resposta que Roxy Walsh postou, que fornece alguns detalhes adicionais sobre o problema, que são necessários para entender alguns dos detalhes fornecidos pela minha resposta.

Ok, aqui está o acordo:
Os apóstrofos estavam escapando dos tis.

Tente isto:

echo ~
echo '~'

O que você vai descobrir é que o primeiro comando expande o ~ para o seu diretório pessoal. No segundo comando, você recebe um til real. O til foi "escapado". Escapar significa especificar que o personagem precisa ser tratado como um personagem normal, em vez de ter um significado especial.

Agora, o que você precisa fazer é escapar dos espaços, o que você fez com as barras invertidas, mas não para escapar do til. Os espaços normalmente têm um significado especial, que é separar seus parâmetros. Você não quer isso separado: seu espaço em "Sites compartilhados /" faz parte de um diretório. Esse espaço em particular não se destina a informar ao comando "ln" que você acabou de especificar o primeiro arquivo / diretório e está prestes a especificar o próximo arquivo / diretório. Então esse espaço precisava ser escapado.

Com base no exemplo que você mostrou, o seguinte também teria funcionado:

ln -s ~/'Dropbox/Shared Sites/SITENAME' ~/Sites/SITENAME
    
por 20.10.2015 / 20:31