Usando o comando test para criar um diretório, se ele não existir

1

Eu estava apenas imaginando se esse código de script testaria adequadamente a existência de um dir2 e, se ele não existe, crie-o. Dir1 já existe.

[ ! -d /dir1/dir2  ] && mkdir /dir1/dir2
    
por Wesley Jordt 20.02.2015 / 07:34

1 resposta

1

Seu comando pode falhar se dir1/dir2 existir, mas não for um diretório. Se você quiser testar se dir1/dir2 existe, use -e

[ -e dir1/dir2 ] || mkdir dir1/dir2

Se você realmente precisa de dir1/dir2 para ser um diretório, e um arquivo comum com esse nome é um erro e deve ser substituído, você pode testar para esse caso.

[ -e dir1/dir2 ] && [ ! -d dir1/dir2 ] && rm dir1/dir2
[ -d dir1/dir2 ] || mkdir dir1/dir2
    
por 20.02.2015 / 08:45