Posso armazenar e trabalhar com um diretório em formato compactado?

4

Eu tenho que trabalhar com muitos diretórios de grande porte que são enviados na forma de tarballs. No entanto, para realmente fazer quaisquer operações, estas tarballs devem ser descompactadas em diretórios e operações são executadas. A maioria das operações envolve coreutils ou comandos básicos do Linux em pipelines. É possível trabalhar com esses diretórios de forma que eles sejam compactados?

    
por Ketan 21.07.2015 / 20:17

2 respostas

3

Como Christopher sugeriu, archivemount pode conseguir isso. Permite a gravação de arquivos e, quando desmontado, o arquivo .tar.gz é atualizado automaticamente para refletir as alterações.

# 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.
#
    
por 21.07.2015 / 20:33
1

Sim, graças ao FUSE , que permite que sistemas de arquivos sejam implementados por programas de usuários. Existem muitos sistemas de arquivos FUSE lá fora, implementando arquivos armazenados como algo diferente de setores em um disco, incluindo visualizações alternativas de sistemas de arquivos existentes, arquivos em uma máquina remota, arquivos em um arquivo morto, etc.

Você pode usar archivemount para montar um arquivo específico em um diretório. Os arquivos são modificáveis.

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

Você pode usar o avfs para acessar todos os arquivos sem ter que executar uma ação específica para cada arquivo. O Avfs cria uma visualização de toda a árvore de diretórios em ~/.avfs , em que cada arquivo tem um diretório associado ARCHIVE-FILE# que parece conter o conteúdo do arquivo. O conteúdo do arquivo é somente leitura.

mountavfs
ls ~/.avfs$PWD/foo.tar.gz\#
    
por 22.07.2015 / 02:41

Tags