Tentando obter arquivos em pastas individuais (1 pasta para cada arquivo)

1

dos comentários aqui: link

Tenho cerca de 15 mil imagens e cada uma precisa da sua própria pasta. Eu corri esta vez, quando eu tinha menos imagens, e funcionou bem:

a=0; for i in *.jpg; do mkdir -p $a; mv $i $a; a=$((a+1)); done

Mas não quando eu o executo, 10000.jpg entra na pasta "0". Achei que tinha algo a ver com o quinto dígito, mas voltei para 9999 e coloquei 1000.jpg em "0". Eu verifico mais em um aleatório como 1934 e até então ele está completamente desmoronado e eu não tenho idéia do porquê desse número .jpg em particular estar na pasta numerada. Existe uma maneira de corrigir essa linha ou há outra linha que eu deveria estar usando para fazer isso?

    
por lachumproyale 29.03.2016 / 20:55

1 resposta

0

Você não parece dizer isso explicitamente, mas se todos os seus arquivos JPEG tiverem nomes de arquivos, a maneira mais fácil de fazer isso é usar $ {x% .jpg} para criar uma variável que seja apenas o nome base do arquivo. o arquivo JPEG sem .jpg :

for i in *.jpg; do d="${i%.jpg}"; mkdir "$d"; mv "$i" "$d"; done
    
por 29.03.2016 / 21:04