Como renomear em lote os arquivos, mas não os diretórios?

0

Eu tenho muitos arquivos que precisam de uma extensão anexada a eles, mas eles estão em um diretório com muitos subdiretórios. Atualmente, os arquivos não têm extensão. Como renomear apenas os arquivos, mas não renomear nenhum dos diretórios ou subdiretórios?

    
por Kevin 20.06.2012 / 18:14

1 resposta

3

Itere tudo e teste se é um arquivo normal ou não.

#bash
for file in ./*; do
    [[ -f $file ]] && mv "$file" "$file.ext"
done

Caso você precise evitar adicionar extensões em arquivos que já o tenham:

for file in ./*; do
    if [[ -f $file && $file != *.ext ]]; then
        mv "$file" "$file.ext"
    fi
done
    
por geirha 20.06.2012 / 18:17