我有一个文件夹,里面有 322000 张图片。当我使用任何文件管理器访问该文件夹时,它都会卡在加载状态。
我怎样才能去那里查看或删除图像?
答案1
自动将文件划分为(递归)目录,每个(子)文件夹/每个上级文件夹包含任意数量的文件
最简单、最有效的方法是使用脚本将文件重新组织到文件夹中,必要时甚至可以组织到不同层次的目录。这将使您的文件可浏览而不会阻塞 nautilus。
下面的脚本将为您完成此操作。它将创建包含任意数量文件的文件夹。如果这些文件夹超过(相同的)任意数量,则它们将被组织到子文件夹中,等等。换句话说,每个(子)级别将具有相同的最大文件/子目录数量,从而可以轻松浏览。
每个创建的文件夹都显示文件夹编号 + 创建的子级别数(例如 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)
笔记
正如评论中提到的,该脚本假定不存在名称冲突的风险,因为所有文件最初都来自同一个(平面)目录。
答案2
这是文件管理器的问题nautilus
这是文件管理器在处理包含大量文件的目录时漏洞。
在这种情况下,我建议您使用一些快速的文件管理器。gnome-commander
它比 nautilus 快 5 到 6 倍,处理大量文件时,这个比率会更大。它的 GUI 不是很漂亮,但它应该可以帮助您解决问题。
安装方法:
sudo apt-get install gnome-commander
现在打开包含大量文件的目录:
gnome-commander /path-to-dir
答案3
答案4
您可以通过终端进入该文件夹,执行gnome-open image.jpg
或xdg-open image.jpg
,这将打开其中一个图像,gnome-image-viewer
或更常见的图像eye of gnome
(eog)。接下来,如果您点击F9或 转到查看 -> 图像库,您可以预览缩略图。