Fuse-archive - Vos ZIP montés en dossiers ordinaires

Wait 5 sec.

Pour votre système d'exploitation, une archive c'est juste un fichier. Un seul gros fichier bien opaque qu'il faut ouvrir avec un outil dédié, ou décompresser quelque part avant de pouvoir travailler dedans.C'est pour cela que je vous présente aujourd'hui l'outil fuse-archive qui prend le problème à l'envers en présentant ce fichier comme un dossier ordinaire, en lecture seule, que vous pouvez parcourir avec ls, cat, grep, votre éditeur ou votre visionneuse d'images.En gros, vous lui donnez l'archive, un nom de dossier, et c'est tout. Ensuite, il le monte comme une partition normale :fuse-archive foobar.tar.gz mnttree mntumount mntLa liste des formats supportés, c'est celle de libarchive, donc elle est assez longue : ZIP, 7z, RAR, TAR compressés de toutes les façons, ISO, paquets DEB et RPM, archives WARC du web.Vos DOCX, vos EPUB et vos APK étant des ZIP sous un autre nom, ils se monteront pareil, et quand l'extension ne sera pas reconnue, l'outil ira lire les premiers octets pour trancher tout seul.Et puis vous n'êtes pas obligé de vous arrêter à une archive. Si vous lui en passez trois d'un coup, il les fusionne en une seule arborescence sous le même point de montage, comme si leur contenu avait toujours été rassemblé. Avec le paramètre -o nomerge, il donnera aussi à chaque archive son propre sous-dossier, et quand deux fichiers portent le même nom, il numérote le second en file (1).txt.Là où je trouve ça trop cool, c'est sur les archives chiffrées. En effet, un ZIP protégé par mot de passe se montera sans souci, AES-256 compris. L'outil vous demandera simplement son mot de passe. Ça permet donc de consulter un document confidentiel sans en laisser de copie déchiffrée derrière vous.Deux limites quand même sur le chiffrement... Le format chiffré des 7z et des RAR n'est pas géré, et un fichier à double couche comme un tar.gz.gpg réclamera le paramètre -o maxfilters=2, puisque l'outil n'en traite qu'une seule par défaut.Maintenant, cette lecture sans copie en clair nécessite que fuse-archive décompresse l'archive entière dans un fichier temporaire anonyme, posé dans votre TMPDIR ou, à défaut, dans votre /tmp. Ça peut donc prendre beaucoup de place sur le disque, et votre document confidentiel s'y retrouvera en clair jusqu'au démontage, où le fichier sera supprimé. Toutefois, avec le paramètre -o lazycache, il ne décompressera que ce que vous ouvrez vraiment, et le temporaire grossira alors au fil de vos lectures de fichiers au lieu de tout remplir d'avance. Et avec le paramètre -o nocache, il ne gardera rien sur le disque (au prix de relectures plus lentes).Notez que ce mode lazycache ne vous fera gagner du temps et de l'espace disque que sur les formats à accès direct, du genre ZIP, 7z ou RAR. Un tar.gz, comme une archive chiffrée, sera parcouru en entier de toute façon, rien que pour lister ses fichiers.Maintenant pour du vrai accès direct sur ces formats, je vous invite plutôt à jeter un oeil à ratarmount qui relève la position de tous les fichiers du TAR pour sauter droit à celui que vous demandez (et lui s'installe d'un simple pip install).Ah et j'ai failli oublier, le dépôt s'appelle mount-archive, mais la commande, elle, s'appelle toujours fuse-archive.