Meu problema é o seguinte: Tenho uma pasta com várias sub-pastas e pilhas de arquivos dentro delas. Periodicamente, preciso renomeá-los para "nomedapastas_nomedasubpastas_nomedoarquivo.ext" e movê-los para um servidor FTP. Tenho um script que faz isso de forma primorosa, mas apenas se indico as pastas que vão ser executadas. Isso faz com que tenha que rodar 3 ou 4 scripts diferentes (um para cada pasta). Minha idéia inicial foi trabalhar com a criação de um log e usar o comando cat e while read, mas me deparei com uma questão. Como fazer para ele identificar o início da linha e comparar para ver se roda a ação A ou B? Abaixo, dou um exemplo.
Em cada subdir 1 terão várias subdir 2 e em cada subdir 2 terão várias imagens.
Preciso que o arquivo final saia com o nome de (exemplo): FotoAlta_Recife_DSC_0001.jpg, FotoAlta_Sampa_DSC_0002.jpg e assim por diante.
Comecei pensando no seguinte:
#!/bin/bash
temp="/.temp"
dest="/WebDav"
server="/Backup"
log="backup.log"
find $server -type f -iname "*.[jJ][pP][gG]" | cut -c 8- > $log
# dessa forma, pego apenas os arquivos JPG e corto a entrada /Backup no log
cat $log | while read line
do
filename="${line##*/}"
# me retornou apenas o nome do arquivo.
subend="${line%/*}"
substart="${subend##*/}"
subdir="${substart}"
# me retornou o nome correto da sub-pasta sem nenhuma /.
dirend="${line%/*/*}"
dirstart="${dirend#/}"
dir="${dirstart}"
# me retornou o nome correto da pasta sem nenhuma /.
Obs.Se fizer da seguinte forma, como chamo essa rotina? dir="subdir_name" ?