A vantagem de criar camada no sistema de arquivos do Linux é poder adicionar funcionalidades extras e transparentes ao efetuar operações no sistema de arquivos, diferentes das funcionalidades padrão do sistema.
Bind mount fornece uma visão de uma árvore de diretórios em um local diferente. Ele expõe os mesmos arquivos, possivelmente com diferentes opções de montagem e (com bindfs) diferente propriedade e permissões, por exemplo.
Sistemas de arquivos que apresentam uma visão alterada de uma árvore de diretórios são chamados de sistemas de arquivos de sobreposição(overlay filesystems) ou sistemas de arquivos empilháveis(stackable filesystems).
Há muitos outros sistemas de arquivos de sobreposição que executam transformações mais avançadas. Abaixo está uma lista de alguns dos mais comuns. Se o seu caso de uso desejado não é coberto aqui, verifique o repositório de sistemas de arquivos FUSE na internet para ver se já não existe pronto e disponibilizado por alguém.
Log
- loggedfs — Efetua o log de todos os acessos ao sistema de arquivo para propósito de monitoramento, debug, etc
Filtrar arquivos visíveis
- clamfs — executa o anti-virus em arquivos ao serem lidos em disco
- filterfs — oculta partes do sistema de arquivo
- rofs — visão somente leitura (read-only view). Similar ao
bindfs -r
, apenas com uma implementação pouco mais leve. - Union mounts — apresenta múltiplos sistemas de arquivos (chamados branches) em um simples diretório: Se arvore_diretorio_
1
contémfoo
and arvore_diretorio_2
contémbar,
então a união na visualização do conteúdo conterá ambos,foo
ebar
. Novos arquivos são salvos num branch específico, de acordo com regras configuradas. Há diversas implementações deste conceito, como abaixo citamos algumas:- aufs — Implementação Linux kernel
- funionfs — Implementação FUSE
- mhddfs — FUSE, gerencia múltiplos pontos de montagem escrevendo arquivos em discos baseado em espaço disponível livre
- overlay — Implementação Linux kernel
- unionfs-fuse — FUSE, com funcionalidades de cache
Modicar nomes e metadados de arquivos
- ciopfs — sistema de arquivos case-insensitive (pode ser útil ao montar conjuntamente com sistemas de arquivo Windows)
- convmvfs — converte os nomes de arquivos entre diferentes charsets de acordo com a configuração (exemplos)
- posixovl — armazena nomes de arquivos Unix e outros metadados (permissão, propriedade, etc) em sistemas de arquivos mais restritos como VFAT
Altera visualização de conteúdo de arquivos
- avfs — é um sistema que permita a todos os programas olhar arquivos arquivados ou comprimido, ou arquivos de acesso remoto sem recompilar os programas ou alterar o kernel.
- fuseflt — executa arquivos através de pipeline quando lido. Exemplo de uso: recodificar arquivo de texto ou arquivos de mídia
- lzopfs — descompressão transparente de arquivos compactados
- mp3fs — transcode arquivos FLAC para MP3 quando sendo em modo leitura
- scriptfs — executa scripts para servir um conteúdo (como se fosse um local CGI)
Modifica o modo como o conteúdo é armazenado
- chironfs — replica arquivos entre múltiplos sistemas de armazenamento (RAID-1 em nível de árvore de diretório)
- copyfs — mantém uma cópia de todas as versões de todos os arquivos
- encfs — criptografa os arquivos
- pcachefs — camada de cache em disco para sistema de arquivos remoto lento
- simplecowfs — salva as mudanças em memória, deixando o arquivo original em disco intacto até ser ‘fechado’, quando seria as alterações salvas (se o sistema de arquivo permitir)
- wayback — mantém cópias de todas as versões dos arquivos