Eine TAR-Datei mounten - nicht möglich?

8

Es scheint, dass man keine TAR-Datei (schreibgeschützt) bereitstellen kann, ähnlich wie man eine ISO-Image-Datei bereitstellt. Zumindest habe ich keine Implementierung gefunden.

Es wäre beispielsweise nützlich, einen Suchbefehl im Inneren auszuführen .

Ist das wirklich (oder praktisch) unmöglich umzusetzen? Warum?

UPDATE Bei akzeptierter Antwort ist dies in der Tat möglich, obwohl ein Programm (nicht in den aktuellen Distributionen enthalten) installiert werden muss. Es hat bei mir funktioniert. Ich kopiere die Installation und verwende die Schritte in meinem Szenario (Fedora 12).

  # yum install fuse fuse-libs fuse-devel 
  # yum install libarchive libarchive-devel
  # cd /tmp && wget http://www.cybernoia.de/software/archivemount/archivemount-0.6.0.tar.gz
  # tar xzf archivemount-0.6.0.tar.gz && cd archivemount-0.6.0
  # ./configure && make && make install
  # man archivemount
  #  archivemount -o ro /tmp/mytar.tgz /mnt/tt
leonbloy
quelle
1
tar -tf yourfile.tar | grep 'pattern'
Javier
Nicht gerade eine Antwort, aber Sie könnten tar -tvf somefile.tar | verwenden grep etwas. stimmte dafür, mich zu schlagen. :)
Egorgry
Ich weiß das, aber mit find können Sie viele Kriterien und Logik (Größen, Zeitstempel) angeben. Tar + grep fällt ein wenig zu kurz.
Leonbloy
Sie könnten pfeifen, um zu finden und kreativ zu werden.
Egorgry
Ich liebe es, mit Pipes und Kommandozeilen zu spielen, aber das gilt hier nicht. 'find' wird nicht von stdin gespeist, sondern von einem Pfad in einem Dateisystem
leonbloy

Antworten:

8

Nein, das ist traditionell nicht möglich.

Sie können dies jedoch mit dem Archivierungssystem des FUSE-Dateisystems unter Linux tun .

IMNSHO das ist ein bisschen neu und normalerweise nicht notwendig, aber ich kann ein paar Randfälle dafür sehen.

MikeyB
quelle
Einer der möglichen Anwendungsfälle ist meiner - ich möchte Archive auf einem Remote-Server bereitstellen können, um inkrementelle Sicherungen von rsync für sie durchführen zu können. Ich bin mir nicht sicher, ob es schnell gehen wird.
Illarion Kovalchuk
1

Das Paket ist in Ubuntu 11.10 verfügbar, leider kaputt.

Sie können es über diese Problemumgehung installieren :

mkdir -p ~/src
cd ~/src

sudo aptitude install build-essential devscripts debian-archive-keyring libfuse-dev libarchive-dev
apt-get source archivemount
gpg --keyring /usr/share/keyrings/debian-archive-keyring.gpg --verify *dsc

cd archivemount-0.6.1
cat << EOF | patch -p0
--- debian/control
+++ debian/control
@@ -8,7 +8,7 @@

 Package: archivemount
 Architecture: linux-any
-Depends: \${shlibs:Depends}, \${misc:Depends}, fuse (>=2.8.5-2)
+Depends: \${shlibs:Depends}, \${misc:Depends}, fuse-utils (>=2.8.4-1.4ubuntu1)
 Description: mounts an archive for access as a file system
  archivemount is a FUSE based file system for Unix variants, including Linux.
  Its purpose is to mount archives to a mount point where it can be read from
EOF
dch --nmu 'Depend on fuse-utils instead of fuse on Oneiric Ocelot.'
dpkg-buildpackage

cd ..
sudo dpkg -i archivemount_0.6.1-2.1_amd64.deb

Der letzte Schritt hat bei mir nicht funktioniert, also ich

cd archivemount-0.6.1./
configure && make && sudo make install

stattdessen.

k0pernikus
quelle