Por que mkdir -p / local / Foo / Bar / Wah não funciona, mas cd / local e mkdir -p Foo / Bar / Wah funciona? [fechadas]

2

Eu estou tentando criar uma pasta local na minha máquina de desenvolvimento local, no Mac OS X Mountain Lion, então fiz:

sudo mkdir /Local
sudo chmod 777 /Local
mkdir -p /Local/Foo/Bar/Wah

(observe que a última linha não tem sudo ), mas a última linha apresenta um erro:

$ mkdir –p /Local/Foo/Bar/Wah
mkdir: –p: File exists
mkdir: /Local/Foo/Bar: No such file or directory

É algum tipo de bug? Eu poderia fazer:

cd /Local
mkdir -p Foo/Bar/Wah

e funciona. Por quê? E se é pelo motivo que tentou mkdir /Local primeiro mas não pode porque o super-utilizador já o fez, então isto não será um erro? (que apenas aceite o fato de que /Local está lá e inicie mkdir de Foo e desça para Bar e Wah ).

    
por 太極者無極而生 23.01.2014 / 00:56

2 respostas

3

Você escreveu:

  $ mkdir –p /Local/Foo/Bar/Wah
  mkdir: –p: File exists

Depois de apertar os olhos, muito duro, vejo que o traço antes do "p" não é realmente um "-" mas um "-" (como é chamado "en-dash "). Eu acho que agora existe um diretório chamado "–p" ("en-dash p") no seu $PWD e ao invés de chamar mkdir com -p ("minus-p") você chamou apenas mkdir . Confuso sim. Exemplo:

$ mkdir –p foo                        ### ok, that went through.
$ mkdir –p foo
mkdir: cannot create directory ‘–p’: File exists
mkdir: cannot create directory ‘foo’: File exists

$ ls -ldgo -- *p foo
drwxrwxr-x. 2 4096 Jan 22 19:49 foo
drwxrwxr-x. 2 4096 Jan 22 19:49 –p

Agora temos dois diretórios, foo e en-dash-p - mkdir nunca foram chamados com -p ("minus-p").

Talvez você tenha copiado o comando mkdir -p de algum outro lugar, onde -p ("minus-p") era realmente um travessão, talvez um documento do Word ou um blog com fontes estranhas, isso acontece às vezes.

    
por 23.01.2014 / 04:59
0

Se você precisar trabalhar por um tempo neste diretório, prefira usar:

chown -R username.staff /Local

em vez de chmod .

Assim todo o subdiretório pertencerá a você. Eu fiz os mesmos comandos no meu Mac e tudo correu bem. Verifique em console.app se você ver algo sobre esses diretórios.

    
por 23.01.2014 / 02:31

Tags