bugnano / archivefs

A read-only FUSE filesystem for mounting compressed archives, inspired by archivemount.
GNU General Public License v3.0
26 stars 1 forks source link

archivefs

Archivefs is a read-only FUSE filesystem for mounting compressed archives, inspired by archivemount.

Features

Archive formats

Archivefs supports all the formats supported by libarchive, including, but not limited to:

Note that libarchive has known bugs when reading rar archives.

System requirements

For running

For compiling

For building the man page

Installation

# This will install only the archivefs executable in $HOME/.cargo/bin, without any
# man page. Also, make sure that the $HOME/.cargo/bin directory is in your PATH
cargo install archivefs

# Alternatively, you can build from source using the command
cargo build --release
# and then copy the file target/release/archivefs somewhere in your PATH

# To build the man page:
a2x -f manpage doc/archivefs.1.adoc
# and then copy the file doc/archivefs.1 in a man path (like $HOME/.local/share/man/man1 )

Usage

archivefs [OPTIONS] ARCHIVEPATH MOUNTPOINT

Example session

Consider the gzipped tar archive files.tgz containing files file1 and file2, and an empty directory mnt.

$ ls
files.tgz    mnt/

# Mount the archive file
$ archivefs files.tgz mnt

$ ls mnt
file1    file2

# Perform desired read operations on the archive via mnt/
# For example, to extract a file simply copy it
$ cp mnt/file1 ~/

# Unmount the archive when done
$ umount mnt

Write support

Contrary to archivemount, which sort-of supports writing to an archive by recreating it, archivefs only supports reading from archives.

Hard link support

Note that if an archive contains hard links, they will be treated as separate files by archivefs.