Tôi có một thư mục với 322000 hình ảnh trong đó. Khi tôi đi đến thư mục đó với bất kỳ trình quản lý tệp nào, nó sẽ bị kẹt khi tải.
Làm thế nào tôi có thể đến đó và xem hoặc xóa hình ảnh?
Tôi có một thư mục với 322000 hình ảnh trong đó. Khi tôi đi đến thư mục đó với bất kỳ trình quản lý tệp nào, nó sẽ bị kẹt khi tải.
Làm thế nào tôi có thể đến đó và xem hoặc xóa hình ảnh?
Câu trả lời:
Cách dễ nhất và hiệu quả nhất IMHO là có một tập lệnh sắp xếp lại các tệp vào các thư mục, nếu cần thậm chí các lớp khác nhau của các cấp thư mục. Điều này sẽ làm cho các tập tin của bạn có thể duyệt mà không bị nghẹt nautilus.
Kịch bản dưới đây sẽ làm điều đó cho bạn. Nó sẽ tạo các thư mục với số lượng tệp tùy ý. Các thư mục này sẽ được tổ chức thành các thư mục phụ nếu chúng vượt quá một số tùy ý (giống nhau), v.v. Nói cách khác; mỗi cấp độ (phụ) sẽ có cùng số lượng tệp / thư mục con tối đa, giúp việc duyệt web dễ dàng hơn.
Mỗi thư mục đã tạo hiển thị số thư mục + số cấp phụ được tạo (trong đó, ví dụ 22_1 chỉ chứa tệp):
Tôi đã thử nghiệm trong một thư mục gồm 300.000 tệp, để được sắp xếp lại thành từng khối (tối đa) 100 tệp, để được sắp xếp thành các thư mục cao cấp của (tối đa) 100 thư mục, v.v.
Mất ít hơn một phút trên hệ thống của tôi. Một bài kiểm tra 100.000 tệp thành các phần nhỏ hơn chỉ là vài giây.
#!/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
Chạy nó bằng lệnh:
python3 /path/to/reorganize.py
Kịch bản (vì nó là) chỉ tạo ra một cấu trúc thư mục trong đó mỗi cấp có số lượng tệp / thư mục được xác định. Nó không tính đến bất kỳ loại tổ chức nào theo tên, ngày hoặc bất cứ điều gì.
Theo yêu cầu trong một bình luận, một tập lệnh để di chuyển các tệp trở lại vào một thư mục phẳng sau khi xử lý các tệp.
Cách sử dụng là khá nhiều như nhau. Là thư mục, đặt cùng thư mục với tập lệnh đầu tiên, nhưng điều đó có vẻ hiển nhiên.
#!/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)
Như đã đề cập trong một bình luận, tập lệnh giả định rằng không có nguy cơ xung đột tên, vì tất cả các tệp ban đầu đến từ cùng một thư mục (phẳng).
Đây là một vấn đề trong trình quản lý tệp nautilus
khi làm việc với các thư mục chứa số lượng lớn tệp, điều này được mô tả trong lỗi này .
Tôi khuyên bạn trong trường hợp này nên sử dụng một số Trình quản lý tệp nhanh. bạn có thể sử dụng gnome-commander
nhanh gấp 5 lần đến 6 lần so với nautilus và tỷ lệ này sẽ lớn hơn khi xử lý số lượng lớn tệp. Nó không phải là GUI đẹp nhưng nó sẽ giúp bạn khắc phục vấn đề của mình.
Để cài đặt nó:
sudo apt-get install gnome-commander
Bây giờ hãy mở thư mục với số lượng lớn tệp:
gnome-commander /path-to-dir
Tôi không có bất kỳ kinh nghiệm cá nhân nào với các thư viện lớn như vậy, nhưng tôi đã nghe rất rõ về cá heo.
Cá heo là trình quản lý tệp được sử dụng trong các bản phân phối KDE như Kubfox. Bạn có thể cài đặt nó và chạy nó tốt trên Ubuntu Desktop, mặc dù dấu chân có thể khá lớn, vì nó phải tải xuống và cài đặt rất nhiều phụ thuộc KDE.
Tải xuống Trình quản lý tệp cá heo
Một cách tiếp cận khác có thể là sử dụng máy quang. Tôi cho rằng các công cụ như vậy sẽ được tối ưu hóa để hiển thị các bộ sưu tập lớn.
Đối với photomanager có khá nhiều lựa chọn thay thế, nhưng một vài cái phổ biến là:
Tôi đã thử trình quản lý tập tin Thunar với hình ảnh theo thứ tự 10.000. Hiển thị hình thu nhỏ khá nhanh trên các ổ đĩa cục bộ và cũng mở ổ đĩa mạng nhưng chậm hơn nhiều. Tôi đã không thử nó cho một số lượng lớn hơn các tập tin, mặc dù. Nhưng ít nhất, nó làm việc tốt hơn Nautilus rất nhiều mà không ảnh hưởng đến giao diện đồ họa
sudo apt-get install thunar
Ngoài ra còn có một tập lệnh để biến nó thành Trình quản lý tệp mặc định của bạn (nếu bạn thích nó). Bạn có thể tìm thấy kịch bản ở đây:
Bạn có thể đi qua thiết bị đầu cuối đến thư mục đó, làm gnome-open image.jpg
hoặc xdg-open image.jpg
, sẽ mở một trong những hình ảnh có gnome-image-viewer
hoặc thường được gọi là eye of gnome
(eog). Tiếp theo, nếu bạn nhấn F9hoặc đi đến Xem -> Thư viện hình ảnh, bạn có thể xem trước hình thu nhỏ.