Existe diferença entre renaiming e mudar para algum lugar. No caso mais fácil (no moderno bash
) é percorrer todos os arquivos:
for f in *.*
do
d=${f::1}/${f:1:1}
[ -d "$d" ] || mkdir -p "$d"
mv "$f" "$d"
done
Estou tentando agrupar arquivos automaticamente em subdiretórios usando um comando como este:
$ rename 's/(.)(.)(.+)/$1\/$2\/$1$2$3/' *.*
Uma execução a seco com o parâmetro -n
mostra o que eu quero:
test.jpg renamed as t/e/test.jpg
Mas a renomeação atual falha com
Can't rename test.jpg t/e/test.jpg: No such file or directory
porque os subdiretórios ainda não existem.
Como posso conseguir isso sem criar todos os subdiretórios manualmente de antemão?