Dividir um diretório com base no prefixo do nome do arquivo

1

Eu tenho um diretório muito grande com provavelmente milhões de arquivos pequenos nele. Está demorando para executar ls no diretório.

Existe um script fácil que eu posso executar para dividir o diretório em outros menores, com base nos prefixos dos nomes de arquivos. Meu objetivo é acabar com algo semelhante ao que o diretório de conjuntos de arquivos Debian se parece.

    
por Ken Bloom 05.03.2010 / 05:22

1 resposta

1

Isso é muito simples? Basta colocar todos os arquivos em um único diretório de letras baseado no primeiro caractere do arquivo.

#!/bin/sh


for i in '/bin/ls | xargs'
do
    dir='echo $i | cut -c 1 -'
    mkdir -p $dir
    mv $i $dir
done

Você não obtém os diretórios 'lib', mas pode criar regras especiais para outros prefixos.

    
por 05.03.2010 / 06:45