Isso é o que eu criei
#!/bin/bash
dnames=$(for i in $(ls -d $1*/); do echo ${i}; done)
if [ "$#" -eq "1" ]; then
for dir in $dnames
do
cd $1
cd $dir
if [ -d "drawings" ]; then
cd drawings
jpgfiles=$(ls -p | grep -v / | awk '/.jp[e]?g/{print $0}')
if [ -z "$jpgfiles" ]; then
echo "Directory drawings exist in $dir but no .jpg images were found"
else
for jpgs in $jpgfiles
do
echo "found $jpgs in ${dir}drawings" #convert $jpgs -crop 713x470+5+3 output.jpg
done
fi
else
echo "Directory drawings cannot be found in $dir"
fi
done
else
echo "A full path to the directory must be given"
echo "For instance, /home/user1/Pictures/"
fi
Isso deve ser executado com um parâmetro, no qual o parâmetro é o caminho completo para o diretório. Por exemplo, se eu for procurar a pasta drawings que pode estar localizada em um subdiretório no meu diretório / home / joram /
Seria assim
myprogram /home/joram/
O programa faz um loop em / home / joram / através de todos os diretórios que ele contém. Em seguida, ele visita todos os diretórios em / home / joram / na esperança de encontrar a subpasta drawings . Quando o programa encontra a pasta drawings que contém imagens .jpg, os comandos são acionados. Depois de terminar os comandos, o programa continua o loop, desde que todos os diretórios estejam marcados.
Exemplo de uma saída do programa:
#Directory drawings cannot be found in /home/joram/Desktop/
#Directory drawings cannot be found in /home/joram/Documents/
#Directory drawings exist in /home/joram/Downloads/ but no .jpg images were found
#Directory drawings cannot be found in /home/joram/Music/
#Directory drawings cannot be found in /home/joram/my_scripts/
#found test2.jpeg in /home/joram/Pictures/drawings
#found test.jpg in /home/joram/Pictures/drawings
#Directory drawings cannot be found in /home/joram/Public/
OBSERVAÇÃO: Em sua forma atual, o programa apenas imprime os arquivos .jpg encontrados e fornece outras informações (nenhum outro comando é acionado). Desta forma, pode ser testado antes de fazer uma coisa real. Para fazer com que o programa obtenha o que você deseja, exclua a parte de eco e descomente o comando na linha 16 (se esse for o comando real que você deseja executar).
Melhorias podem ser feitas, espero que isso ajude você de qualquer maneira!