Navegar em pastas com mais de 100.000 imagens

5

Eu tenho uma pasta com 322000 imagens. Quando vou para essa pasta com qualquer gerenciador de arquivos, ele fica preso no carregamento.

Como posso ir até lá e ver ou excluir imagens?

    
por user22005 02.06.2015 / 09:26

5 respostas

4

Divida automaticamente seus arquivos em um diretório (recursivo) com um número arbitrário de arquivos por (sub) pastas / pastas por pasta superior

A maneira mais fácil e mais eficiente do IMHO é fazer com que um script reorganize os arquivos em pastas, se necessário, até camadas diferentes de níveis de diretório. Isso tornará seus arquivos navegáveis sem engasgar com nautilus.

O script abaixo fará isso para você. Ele irá criar pastas com um número arbitrário de arquivos. Essas pastas serão organizadas em subpastas se excederem um (o mesmo) número arbitrário, etc. Em outras palavras; cada (sub) nível terá o mesmo número máximo de arquivos / subdiretórios, facilitando a navegação.

Cada uma das pastas criadas mostra o número da pasta + o número de subníveis criados (onde, por exemplo, 22_1 só contém arquivos):

Oteste

Eutesteiemumdiretóriode300.000arquivos,paraserreorganizadoempedaçosde(máximo)100arquivos,paraserorganizadoemdiretóriossuperioresde(max)100pastasetc.
Demoroumenosdeumminutonomeusistema.Umtestede100.000arquivosempedaçosmenoresfoiumaquestãodesegundos.

Oscript

#!/usr/bin/env python3 import subprocess import os import shutil #--- set the directory to reorganize below dr = "/path/to/directory" #--- set the number of files/folders per level size = 100 level = 0 def move(fn, drn, level): folder = dr+"/"+str(drn)+"_"+str(level) if not os.path.exists(folder): os.mkdir(folder) shutil.move(dr+"/"+f, folder+"/"+f) while len(os.listdir(dr)) > size: level += 1 fn = 0; drn = 1 for f in os.listdir(dr): if fn < size: move(fn, drn, level) else: fn = 0 drn += 1 move(fn, drn, level) fn += 1

Como usar

  1. Copie o script em uma pasta vazia e salve-o como reorganize.py
  2. Na seção head, defina o caminho para o diretório, o número desejado de arquivos por subdiretório (= igual às pastas por diretório).
  3. Execute-o pelo comando:

    python3 /path/to/reorganize.py
    

Nota

O script (como é) apenas cria uma estrutura de diretórios onde cada nível tem um número definido de arquivos / pastas. Não leva em consideração nenhum tipo de organização por nome, data ou qualquer outra coisa.

EDITAR

Conforme solicitado em um comentário, um script para mover os arquivos de volta para um diretório simples após ter processado os arquivos.
O uso é praticamente o mesmo. Como diretório, defina o mesmo diretório do primeiro script, mas isso parece óbvio.

#!/usr/bin/env python3
import shutil
import os

#--- set the directory, the same as the first script
dr = "/path/to/directory"
#---

# move the files back
for root, dirs, files in os.walk(dr):
    for file in files:
        shutil.move(root+"/"+file, dr+"/"+file)
# remove the (now empty) subdirectories
for d in os.listdir(dr):
    folder = dr+"/"+d
    if os.path.isdir(folder):
        shutil.rmtree(folder)

Nota

Como mencionado em um comentário, o script assume que não há risco de conflitos de nomes, uma vez que todos os arquivos inicialmente vieram do mesmo diretório (simples).

    
por Jacob Vlijm 02.06.2015 / 12:58
4

Este é um problema no gerenciador de arquivos nautilus ao trabalhar com diretórios contendo grande número de arquivos, isso é descrito neste bug .

Neste caso, aconselho-o a usar um gerenciador de arquivos rápido. você pode usar gnome-commander de 5X a 6X vezes mais rápido do que nautilus e essa proporção fica maior quando se lida com um grande número de arquivos. Não é uma GUI bonita, mas deve ajudá-lo a resolver seu problema.

Para instalá-lo:

sudo apt-get install gnome-commander

Agora abra o diretório com um grande número de arquivos:

gnome-commander /path-to-dir
    
por Maythux 02.06.2015 / 09:46
1

Eu não tenho nenhuma experiência pessoal com bibliotecas tão grandes, mas ouvi falar muito bem sobre golfinhos.

O Dolphin é o gerenciador de arquivos usado nas distribuições do KDE, como o Kubuntu. Você pode instalá-lo e executá-lo perfeitamente no Ubuntu Desktop, embora o footprint possa ser bem grande, já que ele precisa baixar e instalar muitas dependências do KDE.

Faça o download do gerenciador de arquivos do Dolphin

Outra abordagem pode ser usar um photomanager. Eu diria que essas ferramentas seriam otimizadas para exibir grandes coleções.

Para fotógrafos, existem algumas alternativas, mas alguns populares são:

Shotwell , Digikam e F-Spot

    
por Steffen Christensen 02.06.2015 / 09:49
0

Você pode passar pelo terminal para essa pasta, do gnome-open image.jpg ou xdg-open image.jpg , que deve abrir uma das imagens com gnome-image-viewer ou mais comumente conhecido como eye of gnome (eog). Em seguida, se você pressionar F9 ou vá para Visualizar - > Galeria de Imagens você pode visualizar miniaturas.

    
por Sergiy Kolodyazhnyy 02.06.2015 / 09:52
0

Eu tentei o gerenciador de arquivos Thunar com imagens na ordem de 10.000. Exibe miniaturas rapidamente nas unidades locais e também abre as unidades de rede, mas muito mais lentamente. Eu não tentei por um número maior de arquivos, no entanto. Mas pelo menos, faz um trabalho muito melhor que o Nautilus sem comprometer a interface gráfica

sudo apt-get install thunar

Existe também um script para torná-lo seu Gerenciador de Arquivos padrão (se você gostar). Você pode encontrar o script aqui:

link

    
por Hazem 02.05.2018 / 10:06