Ho una cartella con 322000 immagini al suo interno. Quando vado in quella cartella con qualsiasi file manager, mi si blocca nel caricamento.
Come posso andare lì e visualizzare o eliminare immagini?
Ho una cartella con 322000 immagini al suo interno. Quando vado in quella cartella con qualsiasi file manager, mi si blocca nel caricamento.
Come posso andare lì e visualizzare o eliminare immagini?
Risposte:
Il modo più semplice e più efficace di IMHO è di fare in modo che uno script riorganizzi i file in cartelle, se necessario anche a livelli diversi di directory. Ciò renderà i tuoi file sfogliabili senza soffocare nautilus.
Lo script qui sotto lo farà per te. Creerà cartelle con un numero arbitrario di file. Queste cartelle saranno organizzate in sottocartelle se superano uno (stesso) numero arbitrario, ecc. In altre parole; ogni (sotto) livello avrà lo stesso numero massimo di file / sottodirectory, rendendo la navigazione facilmente possibile.
Ciascuna delle cartelle create mostra il numero della cartella + il numero dei livelli secondari creati (dove ad es. 22_1 contiene solo file):
Ho provato su una directory di 300.000 file, per essere riorganizzato in blocchi di (max) 100 file, per essere organizzato in directory superiori di (max) 100 cartelle ecc.
Ci sono voluti meno di un minuto sul mio sistema. Un test di 100.000 file in blocchi più piccoli è stata una questione di secondi.
#!/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
reorganize.py
Eseguilo con il comando:
python3 /path/to/reorganize.py
Lo script (così com'è) crea semplicemente una struttura di directory in cui ogni livello ha un numero definito di file / cartelle. Non tiene conto di alcun tipo di organizzazione per nome, data o altro.
Come richiesto in un commento, uno script per spostare nuovamente i file in una directory piatta dopo averli elaborati.
L'uso è praticamente lo stesso. Come directory, imposta la stessa directory del primo script, ma questo sembra ovvio.
#!/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)
Come menzionato in un commento, lo script presuppone che non vi sia rischio di scontro tra nomi, poiché inizialmente tutti i file provenivano dalla stessa directory (piatta).
Questo è un problema nel file manager nautilus
quando si lavora con directory che contengono un numero elevato di file, questo è descritto in questo errore .
Ti consiglio in questo caso di utilizzare alcuni file manager veloci. puoi usare gnome-commander
da 5 a 6 volte più veloce di nautilus e questo rapporto aumenta quando si tratta di un numero elevato di file. Non è quella graziosa GUI ma dovrebbe aiutarti a risolvere il tuo problema.
Per installarlo:
sudo apt-get install gnome-commander
Ora apri la directory con un gran numero di file:
gnome-commander /path-to-dir
Non ho alcuna esperienza personale con le biblioteche così grandi, ma ho sentito parlare bene di Delfino.
Dolphin è il file manager utilizzato nelle distribuzioni di KDE come Kubuntu. Puoi installarlo ed eseguirlo bene sul desktop di Ubuntu, anche se l'impronta potrebbe essere piuttosto grande, poiché deve scaricare e installare molte dipendenze di KDE.
Un altro approccio potrebbe essere quello di utilizzare un photomanager. Suppongo che tali strumenti sarebbero ottimizzati per visualizzare raccolte di grandi dimensioni.
Per i fotomanager ci sono alcune alternative, ma un paio di quelle popolari sono:
Ho provato il file manager Thunar con immagini nell'ordine di 10.000. Visualizza le anteprime abbastanza rapidamente sulle unità locali e apre anche le unità di rete ma molto più lentamente. Non l'ho provato per un numero maggiore di file, però. Ma almeno, fa un lavoro molto migliore di Nautilus senza compromettere l'interfaccia grafica
sudo apt-get install thunar
C'è anche uno script per renderlo il tuo File Manager predefinito (se ti piace). Puoi trovare lo script qui:
È possibile passare attraverso il terminale a quella cartella, do gnome-open image.jpg
o xdg-open image.jpg
, che dovrebbe aprire una delle immagini con gnome-image-viewer
o più comunemente noto come eye of gnome
(eog). Successivamente, se si preme F9o si passa a Visualizza -> Galleria di immagini è possibile visualizzare l'anteprima delle miniature.