У меня есть папка с 322000 изображений в нем. Когда я захожу в эту папку с любым файловым менеджером, он застревает при загрузке.
Как я могу зайти туда и просмотреть или удалить изображения?
У меня есть папка с 322000 изображений в нем. Когда я захожу в эту папку с любым файловым менеджером, он застревает при загрузке.
Как я могу зайти туда и просмотреть или удалить изображения?
Ответы:
Самый простой и IMHO самый эффективный способ - сделать так, чтобы скрипт преобразовывал файлы в папки, при необходимости даже в разные уровни каталогов. Это сделает ваши файлы доступными для просмотра, не задыхаясь наутилус.
Сценарий ниже сделает это за вас. Это создаст папки с произвольным количеством файлов. Эти папки будут организованы в подпапки, если они превышают (одинаковое) произвольное число и т. Д. Другими словами; каждый (под) уровень будет иметь одинаковое максимальное количество файлов / подкаталогов, что делает просмотр легким и удобным.
Каждая из созданных папок показывает номер папки + количество созданных подуровней (где, например, 22_1 содержит только файлы):
Я проверил каталог на 300 000 файлов, чтобы его можно было реорганизовать в куски (макс.) 100 файлов, организовать в верхние каталоги (макс.) 100 папок и т. Д.
В моей системе это заняло менее минуты. Проверка 100 000 файлов на более мелкие куски заняла считанные секунды.
#!/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
Запустите его по команде:
python3 /path/to/reorganize.py
Сценарий (как он есть) просто создает структуру каталогов, где каждый уровень имеет определенное количество файлов / папок. Он не принимает во внимание какую-либо организацию по имени, дате или как угодно.
Как указано в комментарии, скрипт для перемещения файлов обратно в один плоский каталог после обработки файлов.
Использование в значительной степени то же самое. В качестве каталога установите тот же каталог, что и первый скрипт, но это кажется очевидным.
#!/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)
Как упомянуто в комментарии, сценарий предполагает отсутствие риска конфликта имен, так как все файлы изначально были из одного (плоского) каталога.
Это проблема в файловом менеджере nautilus
при работе с каталогами, содержащими большое количество файлов, это описано в данной ошибке .
Я советую вам в этом случае использовать какой-нибудь быстрый файловый менеджер. Вы можете использовать gnome-commander
его в 5-6 раз быстрее, чем nautilus, и это соотношение увеличивается при работе с большим количеством файлов. Это не очень красивый графический интерфейс, но он должен помочь вам решить вашу проблему.
Чтобы установить это:
sudo apt-get install gnome-commander
Теперь откройте каталог с большим количеством файлов:
gnome-commander /path-to-dir
У меня нет личного опыта работы с такими большими библиотеками, но я хорошо слышал о дельфинах.
Dolphin - файловый менеджер, используемый в дистрибутивах KDE, таких как Kubuntu. Вы можете установить его и просто запустить на Ubuntu Desktop, хотя занимаемая площадь может быть довольно большой, поскольку он должен загружать и устанавливать множество зависимостей KDE.
Скачать файловый менеджер Dolphin
Другим подходом может быть использование фотоуправления. Я бы предположил, что такие инструменты будут оптимизированы для отображения больших коллекций.
Для фото-менеджеров существует довольно много альтернатив, но есть несколько популярных:
Я пробовал файловый менеджер Thunar с изображениями порядка 10000. Довольно быстро отображает эскизы на локальных дисках и открывает сетевые диски, но гораздо медленнее. Я не пробовал это для большего количества файлов, все же. Но, по крайней мере, он работает намного лучше, чем Nautilus, не ставя под угрозу графический интерфейс
sudo apt-get install thunar
Существует также скрипт, который сделает его вашим файловым менеджером по умолчанию (если вам это нравится). Вы можете найти скрипт здесь:
Вы можете пройти через терминал в эту папку, сделать gnome-open image.jpg
или xdg-open image.jpg
, который должен открыть одно из изображений с gnome-image-viewer
или более известный как eye of gnome
(eog). Далее, если вы нажмете F9или перейдете в «Просмотр» -> «Галерея изображений», вы сможете просмотреть миниатюры.