Resolvi compartilhar com os leitores do blog. Espero que seja útil.
Tutorial
Primeiramente precisamos obter todas as pastas de /home. Esta é a parte mais fácil, um comando ls resolve. Mas como percorrer estas pastas? Para isso podemos usar o comando for. Fica mais ou menos assim:
Em cada iteração do loop a variável arquivo é alimentada com o arquivo corrente. Agora precisamos saber se esse arquivo é realmente um diretório. Para isso podemos usar o comando test, assim:cd /homefor $arquivo in $(ls)dodone
if test -d $aquivo
A opção -d do comando test verifica se determinado arquivo é um diretório. Com isso conseguimos fazer o nosso script, que fica assim:thenfi
cd /home
for numero in $(ls) do
if test -d $numero
then
mkdir $numero/firebird
chown firebird $numero/firebird echo "Criado diretorio: $numero/firebird com permissão para firebird"
fi
done
Legal né? E se a pasta firebird já existir em algum diretório? Blz, podemos resolver adicionando mais um if, assim:
cd /homeO ! no comando test serve como negação, o comando -d além de verificar se é um diretório serve pra gente saber se o diretório realmente existe. Bom essa foi a dica. Espero ter ajudado! T+
for numero in $(ls)
do
if test -d $numero
then
if test ! -d $numero/firebird
then
mkdir $numero/firebird
chown firebird $numero/firebird
echo "Criado diretorio: $numero/firebird com permissão para firebird"
fi
fi
done
Um comentário:
oi
talvez queira dizer
---
cd /home
for arquivo in $(ls)
do
done
---
arquivo e não $arquivo
e talvez ainda:
---
cd /home
for arquivo in *
do
done
---
Postar um comentário