Você pode fazer apenas mkdir -p "$DESTDIR"
- a opção -p
suprimirá erros se já existir.
Atualmente, tenho um diretório em uma string, como tal:
DESTDIR="/var/files/mydir/filedir/"
Observe que esse diretório existe. Eu me certifiquei disso.
Preciso verificar se esse diretório já existe ou se preciso criá-lo. Atualmente estou fazendo isso usando:
if [ -d $DESTDIR ]; then
echo the directory exists!
else
echo the directory does not exist!
fi
e, mesmo que o diretório exista - eu copiei e colei o nome na variável no meu script - ele sempre vai para a instrução else
. Não só isso, mas quando eu faço ls $DESTDIR
dentro do script, recebo um erro no such file or directory
.
No entanto, quando executo ls $DESTDIR
da linha de comando, obtenho o resultado esperado.
Eu tentei substituir $DESTDIR
por "$DESTDIR"
, mas ainda não obtive o resultado esperado.
Parece daqui que $DESTDIR
(também conhecido como / var / files / mydir / file) é na verdade um / file / em vez de um / directory /. O teste -d
pergunta se você tem um diretório / /. Verifique a saída de ls -ld $DESTDIR
para confirmar. Se $DESTDIR
for realmente um arquivo, então o teste -d
está fazendo a coisa certa - não exatamente o que você esperava.
Tags shell-script