Skip to content

Instantly share code, notes, and snippets.

@cstroe
Last active April 23, 2024 09:13
Show Gist options
  • Save cstroe/e83681e3510b43e3f618 to your computer and use it in GitHub Desktop.
Save cstroe/e83681e3510b43e3f618 to your computer and use it in GitHub Desktop.
FUSE on Ubuntu

FUSE on Ubuntu

It seems that Fuse is compiled into the Ubuntu kernel by default.

To test you can use sshfs:

sudo apt-get install sshfs
mkdir tmp
sshfs localhost:/tmp ./tmp
ls tmp

To compile a fuse filesystem that doesn't have a package:

sudo apt-get install libfuse-dev

and then follow the build instructions for your filesystem.

FUSEcompress 0.9.x

FUSEcompress implements transparent file compression as a FUSE filesystem.

sudo apt-get install libfuse-dev
svn checkout http://fusecompress.googlecode.com/svn/trunk/ fusecompress-read-only
cd fusecompress-read-only
./autogen
./configure
sudo ./make install

To mount a compressed filesystem, use the fusecompress command:

mkdir fusecompress-storage fusecompress
fusecompress -c gz ./fusecompress-storage ./fusecompress
bash -c 'for i in $(seq 1 100); do echo "this is a test" >> test.txt; done'
cp test.txt fusecompress
ls -la ./fusecompress/test.txt ./fusecompress-storage/test.txt

However, I found that this file system doesn't work well with unix pipes:

mkdir -p fuse-test/fusecompress-storage fuse-test/fusecompress
fusecompress fuse-test/fusecompress-storage fuse-test/fusecompress
bash -c 'for i in $(seq 1 100); do echo "this is a test" >> fuse-test/fusecompress/test.txt; done'
ls -la fuse-test/fusecompress-storage/test.txt  fuse-test/fusecompress/test.txt

Notice that the test.txt in fusecompress-storage is not compressed. But this will trigger a compression:

cp fuse-test/fusecompress/test.txt fuse-test/fusecompress/copy.txt
ls -la fuse-test/fusecompress-storage/copy.txt  fuse-test/fusecompress/copy.txt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment