Digamos que eu tenho uma pasta:
./folder/
Dentro dele existem muitos arquivos e até subdiretórios.
Quando executo:
mkdir -p folder
Não vejo erros nem avisos. então só quero confirmar, há algo perdido ou alterado no resultado desse comando?
Digamos que eu tenho uma pasta:
./folder/
Dentro dele existem muitos arquivos e até subdiretórios.
Quando executo:
mkdir -p folder
Não vejo erros nem avisos. então só quero confirmar, há algo perdido ou alterado no resultado desse comando?
Respostas:
mkdir -p
não forneceria um erro se o diretório já existir e o conteúdo do diretório não for alterado.
if(err.code == 'EEXIST')
esta condição será verdadeira se o diretório já existir.
Um script portátil dependerá do POSIX, que indica mkdir
a -p
opção de:
Cada operando dir que nomeia um diretório existente deve ser ignorado sem erros.
e se não houver erros relatados, a -p
opção fez seu trabalho:
Crie qualquer componente de nome de caminho intermediário ausente.
O mkdir irá fornecer um erro se o diretório já existir.
mkdir -p NÃO fornecerá um erro se o diretório já existir. Além disso, o diretório permanecerá intocado, ou seja, o conteúdo será preservado como estava.
Você diz que,
Quando executo
mkdir -p folder
, não vejo erros nem avisos.
Você verá um erro se o comando falhar. O -p
sinalizador suprime erros apenas se o diretório já existir.
touch x
mkdir -p x
mkdir: cannot create directory ‘x’: File exists
O mesmo problema ocorrerá se você tentar criar um diretório como um usuário normal em, digamos /etc
,.
O que o -p
suprimirá são erros que seriam acionados quando o diretório de destino já existir
mkdir y
mkdir -p y
No entanto, em todos os casos, você não perderá nada e nada será alterado. Nas situações de erro, você simplesmente não terá o diretório que estava esperando.
mkdir -p folder
, não verei nenhum erro nem mesmo aviso "