Você pode informar apenas mkdir
para criar os caminhos com a opção -p
:
$ mkdir -p /dir1/dir2/dir3/dir4
excerto da página de manual mkdir
-p, --parents
no error if existing, make parent directories as needed
Eu quero verificar recursivamente se existem diretórios em um determinado caminho; se não, eu quero criá-los. Portanto, se eu tiver o caminho /dir1/dir2/dir3/dir4
, se quiser verificar primeiro se dir1/
existe e, se não, crie-o, faça o mesmo para dir2/
etc.
Você pode informar apenas mkdir
para criar os caminhos com a opção -p
:
$ mkdir -p /dir1/dir2/dir3/dir4
excerto da página de manual mkdir
-p, --parents
no error if existing, make parent directories as needed
Eu encontrei uma solução usando cut
e while
-loop
#!/bin/bash
RUNDIR=$1
n=2
TMPDIR=
while [ $(echo $RUNDIR | cut -d '/' -f$(printf $n)) ]; do
TMPDIR=$TMPDIR'/'$(echo $RUNDIR | cut -d '/' -f$(printf $n))
if [ -a $TMPDIR ]; then
echo $TMPDIR' exists'
else
echo $TMPDIR' does not exist; creating directory...'
mkdir $TMPDIR
fi
n=$(printf $(($n + 1)))
done
Existe uma maneira mais compacta de fazer isso?