hungrycat is a tool that prints contents of a file on the standard output, while simultaneously freeing disk space occupied by the file.
It can be useful if you need to process a large file, but:
- you don't have enough space to store the output file and
- you wouldn't need the input file afterwards.
$ md5sum bigfile d9b18676a36c919c1688cba61a2cf0f1 bigfile $ ls -lh bigfile -rw-r--r-- 1 jwilk users 281M Sep 13 19:46 bigfile $ df -h . Filesystem Size Used Avail Use% Mounted on /dev/ice9 330M 284M 29M 91% /mnt/ice9 $ hungrycat bigfile | xz > bigfile.xz $ ls -lh bigfile* -rw-r--r-- 1 jwilk users 60M Sep 13 19:49 bigfile.xz $ df -h . Filesystem Size Used Avail Use% Mounted on /dev/ice9 330M 63M 251M 20% /mnt/ice9 $ xz -d < bigfile.xz | md5sum d9b18676a36c919c1688cba61a2cf0f1 -