Enviado em 04/11/2016 - 15:57h
Olá galera,fiz 2 shell scripts que automatizam o processo de checksums de mais de 1k de arquivos. Porém no script o qual recebe como parâmetro o path do diretório e invoca outro script passando este path como parâmetro não está funcionando exatamente como eu queria...quando ele 'esbarra' em um arquivo que possui espaço no nome ele considera como se fossem dois arquivos, pesquisando sobre o assunto vi que esse erro é bem clássico,porém as soluções que achei não serviram no meu caso;
Segue a baixo os meus dois scripts:
primeiro(recebe o path como parametro e chama o segundo script):
Bom,é isso,espero que a questão tenha ficado clara.
Grato desde já!
Segue a baixo os meus dois scripts:
primeiro(recebe o path como parametro e chama o segundo script):
!/bin/bash
find $1 -type f -exec bash ./task2.sh "{}" \;
#find $1 -type f -print0 | xargs -0 -n1 -I{} ./task2.sh "{}"
segundo(recebe os diretório encontrados pelo primeiro script como parâmetros,converte em string,separa linha por linha e faz a checksum):find $1 -type f -exec bash ./task2.sh "{}" \;
#find $1 -type f -print0 | xargs -0 -n1 -I{} ./task2.sh "{}"
#/bin/bash
#checksum=$(hashdeep ~/Documents/backup_corridas/2014/mnt/gv0/miseq/MiSeqOutput/140319_M02526_0001_000000000-A6Y39/RunParameters.xml)
checksum=$(hashdeep $1)
concatenado=''
for i in $checksum
do
concatenado+=$i
done
IFS=',' read -ra ADDR <<< "$concatenado" #IFS faz com que a variavel ADDR recebe os valores separados por virgula retonados pra variavel chegsum
if [ -z ${ADDR[4]} ]; then
echo
echo 'Checksum FILE:' $1
echo 'Checksum HASH:' ${ADDR[4]}
echo
fi
echo ${ADDR[4]} $1 >> txt.txt
PS:Comecei aprender shell essa semana.#checksum=$(hashdeep ~/Documents/backup_corridas/2014/mnt/gv0/miseq/MiSeqOutput/140319_M02526_0001_000000000-A6Y39/RunParameters.xml)
checksum=$(hashdeep $1)
concatenado=''
for i in $checksum
do
concatenado+=$i
done
IFS=',' read -ra ADDR <<< "$concatenado" #IFS faz com que a variavel ADDR recebe os valores separados por virgula retonados pra variavel chegsum
if [ -z ${ADDR[4]} ]; then
echo
echo 'Checksum FILE:' $1
echo 'Checksum HASH:' ${ADDR[4]}
echo
fi
echo ${ADDR[4]} $1 >> txt.txt
Bom,é isso,espero que a questão tenha ficado clara.
Grato desde já!