Isso não corresponde exatamente ao que você está pensando, mas se for interessante trabalhar com arquivos que suportam metadados, exiftool
pode visualizar e alterar os metadados em um grande número de tipos de arquivos, incluindo arquivos PDF. Para uma lista completa, consulte man exiftool
.
Eu usei-o para criar e alterar metadados em PDFs em várias ocasiões. Por exemplo:
exiftool -Title="My PDF" \
-Subject="stuff" \
-Description="my pdf about various things" \
-Keywords="miscellanea, nonsense" \
-Author="me" \
-Creator="also me" \
"mypdf.pdf"
Agora, aqui é onde ele se torna mais relacionado à sua ideia. O campo Keywords
metadata (ou qualquer outro campo para os formatos de arquivo que suportam a criação de campos arbitrários - muitos deles) pode ser usado para armazenar suas tags nos próprios arquivos, permitindo que o farm de links simbólicos de tags seja mantido automaticamente por um script .
Como alternativa, um script poderia manter um banco de dados (texto plano como CSV ou similar, ou um banco de dados SQL como sqlite
) contendo uma lista de nomes de arquivos (com caminho absoluto completo), metadados do sistema de arquivos (timestamps, tamanho, perms, etc) e suas tags. Outros scripts podem ser escritos para procurar este banco de dados e retornar o (s) resultado (s) em um formato útil.
Por exemplo:
vi $(search-tagged-files --date "last sunday" --keywords thesis)
ou
localc $(search-tagged-files --keywords budget,2017 \
--mimetype=application/vnd.oasis.opendocument.spreadsheet)
OBSERVAÇÃO: a única grande desvantagem de algo assim é a enorme quantidade de trabalho necessário para manter as tags de cada um dos arquivos. Algumas delas podem ser automatizadas, mas muito disso seria um trabalho manual tedioso e demorado. E isso está ignorando o tempo de design e desenvolvimento para criar um sistema para fazer isso.
Nenhum dos programas usados para criar ou editar arquivos seria de alguma forma integrado a um sistema de gerenciamento de arquivos como este, e nem ferramentas padrão como mv
ou cp
ou rm
.
Você poderia escrever scripts de wrapper para muitos deles que estavam cientes do banco de dados de tags e atualizá-lo automaticamente, mas eu nem saberia por onde começar a fazer isso se você usasse um navegador de arquivos GUI para mover, copiar, abrir arquivos etc ... você provavelmente teria que escrever seu próprio navegador de arquivos.
O trabalho envolvido é provavelmente a maior razão pela qual a maioria das pessoas que tiveram idéias como essa acabaram pensando: "Vou usar uma árvore de diretórios bem organizada". Até mesmo o trabalho necessário para escrever o código para gerenciar os documentos é enorme, e o trabalho para gerenciar os metadados de cada arquivo é ainda maior - geralmente só vale o esforço de organizações muito grandes com pelo menos dezenas de milhares de documentos para manter faixa de.
Esta não é uma ideia nova, tem havido muita pesquisa e desenvolvimento em ideias como esta. Um dos nomes é Sistema de Gerenciamento de Documentos .