Enviado em 19/11/2014 - 19:41h
Boa noite, estou precisando de uma ajuda no script para aplicar permissão nos subdiretórios da raiz informada e nos arquivos dos subdiretórios, porém ele deve ignorar os arquivos na raiz informada, basicamente o script não funciona quando tem espaço no nome dos diretórios ou arquivos... já estou batendo cabeça 2 dias... já tentei de 3 formas diferentes.
Segue abaixo
#!/bin/bash
# Script criado por Allan
echo "Informe o diretorio raiz: " ; read path_raiz
echo "Permissao dos diretórios: " ; read permissao_diretorio
echo "Permissao dos arquivos do diretório: " ; read permissao_arquivos
function gotfile
{
fileArray=("$(find $1 -type f)")
tLen=${#fileArray[@]}
for (( i=0; i<${tLen}; i++ ));
do
echo "arq --> ${fileArray[$i]}"
done
}
function gothrudir
{
###################
# MODO 1
###################
# for localizado in `ls "$1"`; do
# f=$1"/"$localizado
# #echo $f
# if [ -d $f ] && [ $f != $path_raiz ] ; then
# echo "dir --> $f"
# gothrudir $f "F"
# else
# if [ $2 = "F" ]; then
# if [ -f $f ]; then
# echo "arq --> $f"
# else
# echo "err --> $f invalido";
# fi
# fi
# fi
# done
###################
# MODO 2
###################
# cd $1
# #pwd
# #read -p "Aperte [Enter] para continuar"
# for localizado in $(find .); do
# f=$localizado
# #ls -la
# #read -p "Aperte [Enter] para continuar"
# if [ $f != "." ] && [ $f != ".." ] ; then
# #echo "achado --> "$f
# if [ -d $f ] && [ $f != $path_raiz ] ; then
# echo "dir --> $f"
# # #gotfile $f
# #gothrudir $f "F"
# else
# #echo "valor --> $f"
# if [ $2 = "F" ]; then
# if [ -f $f ]; then
# echo "arq --> $f"
# else
# echo "err --> $f";
# fi
# fi
# fi
# fi
# #gotfile $f
# done
###################
# MODO 3
###################
for localizado in $1/*; do
f=$localizado
#f=${localizado:${#path_atual}+1}
#f=$localizado
#echo ${localizado:${#path_raiz}+1}
if [ -d "$f" ] && [ "$f" != "$1" ] ; then
echo "dir --> $f"
gothrudir $f "F"
else
if [ $2 = "F" ]; then
if [ -f $f ]; then
echo "arq --> $f"
else
echo "err --> $f invalido";
fi
fi
fi
done
}
if [ -z $path_raiz ] || [ -z $permissao_diretorio ] || [ -z $permissao_arquivos ] ; then
echo "Todos os campos sao obrigatorios"
else
echo "Processando os arquivos e diretórios... aguarde"
ignorar_arquivos_raiz="T"
gothrudir $path_raiz $ignorar_arquivos_raiz
echo "Atualizado com sucesso."
fi
Segue abaixo
#!/bin/bash
# Script criado por Allan
echo "Informe o diretorio raiz: " ; read path_raiz
echo "Permissao dos diretórios: " ; read permissao_diretorio
echo "Permissao dos arquivos do diretório: " ; read permissao_arquivos
function gotfile
{
fileArray=("$(find $1 -type f)")
tLen=${#fileArray[@]}
for (( i=0; i<${tLen}; i++ ));
do
echo "arq --> ${fileArray[$i]}"
done
}
function gothrudir
{
###################
# MODO 1
###################
# for localizado in `ls "$1"`; do
# f=$1"/"$localizado
# #echo $f
# if [ -d $f ] && [ $f != $path_raiz ] ; then
# echo "dir --> $f"
# gothrudir $f "F"
# else
# if [ $2 = "F" ]; then
# if [ -f $f ]; then
# echo "arq --> $f"
# else
# echo "err --> $f invalido";
# fi
# fi
# fi
# done
###################
# MODO 2
###################
# cd $1
# #pwd
# #read -p "Aperte [Enter] para continuar"
# for localizado in $(find .); do
# f=$localizado
# #ls -la
# #read -p "Aperte [Enter] para continuar"
# if [ $f != "." ] && [ $f != ".." ] ; then
# #echo "achado --> "$f
# if [ -d $f ] && [ $f != $path_raiz ] ; then
# echo "dir --> $f"
# # #gotfile $f
# #gothrudir $f "F"
# else
# #echo "valor --> $f"
# if [ $2 = "F" ]; then
# if [ -f $f ]; then
# echo "arq --> $f"
# else
# echo "err --> $f";
# fi
# fi
# fi
# fi
# #gotfile $f
# done
###################
# MODO 3
###################
for localizado in $1/*; do
f=$localizado
#f=${localizado:${#path_atual}+1}
#f=$localizado
#echo ${localizado:${#path_raiz}+1}
if [ -d "$f" ] && [ "$f" != "$1" ] ; then
echo "dir --> $f"
gothrudir $f "F"
else
if [ $2 = "F" ]; then
if [ -f $f ]; then
echo "arq --> $f"
else
echo "err --> $f invalido";
fi
fi
fi
done
}
if [ -z $path_raiz ] || [ -z $permissao_diretorio ] || [ -z $permissao_arquivos ] ; then
echo "Todos os campos sao obrigatorios"
else
echo "Processando os arquivos e diretórios... aguarde"
ignorar_arquivos_raiz="T"
gothrudir $path_raiz $ignorar_arquivos_raiz
echo "Atualizado com sucesso."
fi