我可以以压缩形式存储和使用目录吗?

我可以以压缩形式存储和使用目录吗?

我必须处理许多以 tarball 形式发送的大型目录。但是,为了真正执行任何操作,必须将这些 tarball 解压到目录中并执行操作。大多数操作都涉及管道中的 coreutils 或基本 Linux 命令。是否可以使用这些目录来压缩它们?

答案1

正如克里斯托弗所建议的,archivemount可以实现这一点。允许写入文件,卸载时,.tar.gz 文件会自动更新以反映更改。

# ls -lh download.tar.gz
-rw-rw-r--. 1 steve steve 3.1M Feb 16  2010 download.tar.gz
# archivemount download.tar.gz /mnt
# cd /mnt
# find . -ls|head
     1 3127 drwxr-xr-x   0 root     root      3201043 Dec 31  1969 .
     2    0 drwxr-xr-x   0 steve    steve           0 Aug 30  2006 ./kojoney
     3    0 drwxr-xr-x   0 steve    steve           0 Aug 30  2006 ./kojoney/reports
     4    0 drwxr-xr-x   0 steve    steve           0 Aug 30  2006 ./kojoney/reports/ip_country
     5    9 -rwxr-xr-x   0 steve    steve        9067 Dec 29  2006 ./kojoney/reports/ip_country/Geography-Countries-1.4.tar.gz
     6  160 -rw-r--r--   0 steve    steve      162827 Apr  6  2006 ./kojoney/reports/ip_country/IP-Country-2.21.tar.gz
#

# rpm -qi archivemount
Name        : archivemount
Version     : 0.8.1
Release     : 2.fc20
Architecture: x86_64
Install Date: Tue 21 Jul 2015 11:29:16 AM PDT
Group       : System Environment/Libraries
Size        : 75342
License     : LGPLv2+
Signature   : RSA/SHA256, Sun 13 Oct 2013 11:44:05 AM PDT, Key ID 2eb161fa246110c1
Source RPM  : archivemount-0.8.1-2.fc20.src.rpm
Build Date  : Sun 13 Oct 2013 10:34:48 AM PDT
Build Host  : buildvm-10.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://www.cybernoia.de/software/archivemount/
Summary     : FUSE based filesystem for mounting compressed archives
Description :
Archivemount is a piece of glue code between libarchive and FUSE. It can be
used to mount a (possibly compressed) archive (as in .tar.gz or .tar.bz2)
and use it like an ordinary filesystem.
#

答案2

是的,感谢保险丝,它允许文件系统由用户态程序实现。有许多 FUSE 文件系统,实现将文件存储为磁盘上扇区之外的其他内容,包括现有文件系统的备用视图、远程计算机上的文件、存档中的文件等。

您可以使用存档挂载将特定存档安装到目录。档案是可以修改的。

mkdir foo
archivemount foo.tar.gz foo
ls foo
echo hello >foo/new-file
fusermount -u foo
rmdir foo
tar tf foo.tar.gz

您可以使用AVFS访问所有档案,而无需为每个档案执行特定操作。 Avfs 创建整个目录树的视图,其中每个存档都有一个似乎包含文件内容的~/.avfs伴随目录。ARCHIVE-FILE#存档内容是只读的。

mountavfs
ls ~/.avfs$PWD/foo.tar.gz\#

相关内容