
Estou usando o Interix no Windows para compatibilidade com Unix e estou encontrando o -p
argumento para mkdir
não me comportar como esperado:
> which mkdir
C:\SFU\bin\mkdir
> mkdir -p c:\Program Files\
A subdirectory or file -p already exists.
Error occurred while processing: -p.
A página de manual SUA para mkdir afirma em parte:
NAME
mkdir - make directories
SYNOPSIS
mkdir [-p] [-m mode] directory_name [...]
DESCRIPTION
The mkdir utility creates the directories named as operands, in the order
specified, using mode rwxrwxrwx (0777) as modified by the current
umask(2).
-p Create intermediate directories as required. If this option is
not specified, the full path prefix of each operand must already
exist. Intermediate directories are created with permission bits
of rwxrwxrwx (0777) as modified by the current umask, plus write
and search permission for the owner. Do not consider it an error
if the argument directory already exists.
Por que estou recebendo um erro sobre o diretório existente, mesmo tendo passado -p
? Parece que -p
não é reconhecido como um sinalizador e, em vez disso, está criando um diretório chamado -p
. Como você passa o -p
argumento?
Responder1
As janelas mkdir
estavam sendo recolhidas em vez da Interix. Evito o problema fornecendo o caminho completo para mkdir
a localização do Interix. Isso era necessário, embora which mkdir
tenha sido fornecido ao Interix.