我有一个包含大约 500,000 个文件的数据库。它们是文本文件,文件夹结构将它们分成大约 40 个文件的组。我选择这种结构是因为我希望能够使用文本编辑器查看每个文件。但我想减少文件数量,以便备份速度更快。
我正在寻找一个模拟标准文件结构但实际上是一个文件的程序(或数据库结构)。我的理想结构是包含几个 .zip 文件夹之类的东西,但允许通过 python 和文本编辑器中的文件引用读取、访问和写入 .zip 中的文件和文件夹(例如,使用“nano dataGroup1.zip/folderA/file.txt”之类的简单引用)。
有这样的程序吗?
编辑:我提到的备份是文件结构的直接副本。我将整个文件夹复制并粘贴到可移动媒体上。
答案1
您可以使用 Fuse (https://en.wikipedia.org/wiki/Filesystem_in_Userspace) 。
github 上的项目https://github.com/libfuse/libfuse。
这是一个非常成熟的项目,因此在 Ubuntu 中您已经拥有所有软件包。
例子 :
- 创建一个 zip
cd /tmp/
zip test_fuse_zip.zip /etc/printcap /etc/profile /etc/environment
- 验证内容
unzip -l /tmp/test_fuse_zip.zip
Archive: test_fuse_zip.zip
Length Date Time Name
--------- ---------- ----- ----
135 2020-06-20 19:31 etc/printcap
581 2018-04-09 07:10 etc/profile
399 2020-06-18 23:07 etc/environment
--------- -------
1115 3 files
- 创建安装点
mkdir /tmp/my_zip_fs
- 安装 zip 文件,使其显示为文件系统
fuse-zip /tmp/test_fuse_zip.zip /tmp/my_zip_fs/
- 在文件夹中做一些修改
cd /tmp/my_zip_fs/
mkdir lib
mkdir usr
mkdir root
date > root/cur_date.txt
cd /tmp/
- 卸载
zip
fusermount -u /tmp/my_zip_fs
- 检查内容
unzip -l /tmp/test_fuse_zip.zip
Archive: /tmp/test_fuse_zip.zip
Length Date Time Name
--------- ---------- ----- ----
135 2020-06-20 19:31 etc/printcap
581 2018-04-09 07:10 etc/profile
399 2020-06-18 23:07 etc/environment
0 2020-06-21 13:43 lib/
0 2020-06-21 13:43 usr/
0 2020-06-21 13:44 root/
29 2020-06-21 13:44 root/cur_date.txt
--------- -------
1144 7 files