Ich habe einen Ordner mit 322000 Bildern. Wenn ich mit einem Dateimanager in diesen Ordner gehe, bleibt er beim Laden hängen.
Wie kann ich dorthin gehen und Bilder anzeigen oder löschen?
Ich habe einen Ordner mit 322000 Bildern. Wenn ich mit einem Dateimanager in diesen Ordner gehe, bleibt er beim Laden hängen.
Wie kann ich dorthin gehen und Bilder anzeigen oder löschen?
Antworten:
Der einfachste und meiner Meinung nach effizienteste Weg besteht darin, die Dateien in Ordnern in Ordnern neu zu organisieren, ggf. sogar in verschiedenen Ebenen von Verzeichnisebenen. Dadurch können Ihre Dateien durchsucht werden, ohne dass Nautilus erstickt.
Das folgende Skript erledigt das für Sie. Es werden Ordner mit einer beliebigen Anzahl von Dateien erstellt. Diese Ordner werden in Unterordnern organisiert, wenn sie eine (gleiche) beliebige Anzahl usw. überschreiten. Mit anderen Worten; Jede (Unter-) Ebene hat die gleiche maximale Anzahl von Dateien / Unterverzeichnissen, was das Durchsuchen erleichtert.
Jeder der erstellten Ordner zeigt die Ordnernummer + die Anzahl der erstellten Unterebenen (wobei z. B. 22_1 nur Dateien enthält):
Ich habe in einem Verzeichnis von 300.000 Dateien getestet, um es in Blöcken von (maximal) 100 Dateien zu reorganisieren, in übergeordneten Verzeichnissen mit (maximal) 100 Ordnern usw. zu organisieren.
Auf meinem System dauerte es weniger als eine Minute. Ein Test von 100.000 Dateien in kleinere Blöcke war eine Frage von Sekunden.
#!/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
Führen Sie es mit dem folgenden Befehl aus:
python3 /path/to/reorganize.py
Das Skript (so wie es ist) erstellt lediglich eine Verzeichnisstruktur, in der jede Ebene eine definierte Anzahl von Dateien / Ordnern hat. Es wird keine Organisation nach Name, Datum oder was auch immer berücksichtigt.
Wie in einem Kommentar angefordert, ein Skript zum Verschieben der Dateien in ein flaches Verzeichnis, nachdem die Dateien verarbeitet wurden.
Die Verwendung ist ziemlich gleich. Stellen Sie als Verzeichnis dasselbe Verzeichnis wie das erste Skript ein, aber das scheint offensichtlich.
#!/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)
Wie in einem Kommentar erwähnt, geht das Skript davon aus, dass kein Risiko für Namenskonflikte besteht, da alle Dateien ursprünglich aus demselben (flachen) Verzeichnis stammten.
Dies ist ein Problem im Dateimanager, nautilus
wenn mit Verzeichnissen gearbeitet wird, die eine große Anzahl von Dateien enthalten. Dies wird in diesem Fehler beschrieben .
Ich rate Ihnen in diesem Fall, einen schnellen Dateimanager zu verwenden. Sie können gnome-commander
es 5- bis 6-mal schneller als Nautilus verwenden, und dieses Verhältnis wird größer, wenn Sie mit einer großen Anzahl von Dateien arbeiten. Es ist nicht so hübsch GUI, aber es sollte Ihnen helfen, Ihr Problem zu beheben.
So installieren Sie es:
sudo apt-get install gnome-commander
Öffnen Sie nun das Verzeichnis mit einer großen Anzahl von Dateien:
gnome-commander /path-to-dir
Ich habe keine persönlichen Erfahrungen mit so großen Bibliotheken, aber ich habe gut über Delfine gehört.
Dolphin ist der Dateimanager, der in KDE-Distributionen wie Kubuntu verwendet wird. Sie können es auf dem Ubuntu-Desktop installieren und problemlos ausführen, obwohl der Platzbedarf möglicherweise sehr groß ist, da viele KDE-Abhängigkeiten heruntergeladen und installiert werden müssen.
Laden Sie den Dolphin File Manager herunter
Ein anderer Ansatz könnte darin bestehen, einen Fotomanager zu verwenden. Ich würde davon ausgehen, dass solche Tools für die Anzeige großer Sammlungen optimiert sind.
Für Fotomanager gibt es einige Alternativen, aber einige beliebte sind:
Ich habe den Thunar-Dateimanager mit Bildern in der Größenordnung von 10.000 ausprobiert. Zeigt Miniaturansichten auf lokalen Laufwerken ziemlich schnell an und öffnet auch Netzwerklaufwerke, jedoch viel langsamer. Ich habe es jedoch nicht für eine größere Anzahl von Dateien versucht. Aber zumindest macht es einen viel besseren Job als Nautilus, ohne die grafische Oberfläche zu beeinträchtigen
sudo apt-get install thunar
Es gibt auch ein Skript, mit dem Sie es zu Ihrem Standard-Dateimanager machen können (wenn es Ihnen gefällt). Das Skript finden Sie hier:
Sie können über das Terminal zu diesem Ordner gehen, do gnome-open image.jpg
oder xdg-open image.jpg
, der eines der Bilder mit gnome-image-viewer
oder besser bekannt als eye of gnome
(eog) öffnen soll. Wenn Sie als Nächstes F9auf Ansicht -> Bildergalerie klicken oder gehen, können Sie eine Vorschau der Miniaturansichten anzeigen.