File Roller is Terribly Inefficient

The Gnome archive manager, File Roller, is terribly inefficient in the way it handles archive extraction and creation. I just happened to have Htop running while I was extracting a large gziped tar archive which was on my external hard drive with File Roller when I saw what File Roller was actually doing. First off, File Roller is pretty simple in the way it works. It’s just a GUI wrapper for the command line tools like tar, gzip, etc. So here is what File Roller does when you extract something. It copies the whole archive to a temporary directory in ~/.cache/.fr-xxxx. Then it extracts it in the temporary directory and then copies the extracted files to the location you’re extracting them to.  ARRRRRGGGHH! 👿 What is this I don’t even

Now if that archive happens to be sitting on an external drive and you’re extracting it to the same directory or to another directory on the same external drive you can see just how terribly inefficient this is. It has to copy the archive to your home directory then extract it, then copy it back to the external drive! This is such a waste of time, it makes it take twice as long since it has to make unnecessary copies to temporary locations. Like I said before, File Roller is simply a GUI wrapper for command line tools which is what makes me even more frustrated with this. Tar supports extracting to alternate locations with the -C option. So why the hell is File Roller making unnecessary, time-wasting copies to temporary locations!? I can accomplish the same thing in less time and more efficiently than File Roller with something like this

tar -xzvf file.tar.gz -C /path/to/destination

Another reason this is so bad is that if you happen to be running low on disk space in your home directory and you try to extract an archive that is on an external drive and the archive is larger than your free space you won’t be able to because it will complain about the lack of disk space even though you may have more than enough free space on the external drive.

Finally, it does something just as pointless when creating archives too. I had a 2.3GB file on my desktop that I wanted to compress with lzma. Guess what File Roller did. Yep, copied the whole 2.3GB file to a temporary directory, compressed it, then copied back to my desktop. 👿

I see no logical reason File Roller needs to be making these unnecessary copies to temporary locations. If anyone has a good reason why it does this please enlighten me.

Related bug https://bugs.launchpad.net/ubuntu/+source/file-roller/+bug/146206

/rant