A melhor maneira parece ser o sistema de arquivos de marcação tagsistant .
Na página inicial:
O Tagsistant é um sistema de arquivos baseado em tags para Linux que transforma diretórios em tags e pesquisa seus arquivos por você.
Mount Tagsistant
Diga ao Tagsistant o nome do diretório que você deseja usar, por exemplo, myfiles / em sua casa. Este diretório agora é um local especial com regras personalizadas que ajudam a gerenciar seus arquivos.
$ tagsistant ~/myfiles
$
Crie suas tags
Pense nos diretórios em tags / como adesivos brancos sobre os quais você escreve. Crie quantas tags você precisar, pronto para marcar seus arquivos.
$ mkdir ~/myfiles/tags/startrek
$ mkdir ~/myfiles/tags/starwars
$ mkdir ~/myfiles/tags/scifi
Marque seus arquivos
Depois de criar uma tag nas tags /, ela estará disponível na loja /. Copie seus arquivos dentro dele: é assim que você codifica arquivos. O @ marca o final da lista de tags e é obrigatório.
$ cp first_contact.avi ~/myfiles/store/startrek/@
$ cp the_return_of_the_jedi.avi ~/myfiles/store/starwars/@
Encontre seus arquivos por tags
Componha sua consulta de pesquisa escolhendo quantas tags desejar. Você pode até combinar os resultados de mais de uma consulta colocando um + / no meio, como em startrek / + / starwars / que mescla os arquivos marcados com startrek com os arquivos marcados com starwars.
$ ls ~/myfiles/store/startrek/@
first_contact.avi
$ ls ~/myfiles/store/startrek/+/starwars/@
first_contact.avi
the_return_of_the_jedi.avi
Ativar relações entre tags
$ mkdir ~/myfiles/relations/scifi/includes/startrek
$ ls ~/myfiles/store/scifi/@
first_contact.avi # 1 file...
$ mkdir ~/myfiles/relations/scifi/includes/starwars
$ ls ~/myfiles/store/scifi/@
first_contact.avi
the_return_of_the_jedi.avi # 2 files!
Tagsistant entende várias relações:
- inclui: Se A incluir B, qualquer arquivo marcado como B poderá ser encontrado automaticamente dentro de A.
- exclui: se A exclui B, qualquer arquivo marcado como B não pode ser encontrado dentro de A, mesmo se marcado como A.
- is_equivalent: Se A é equivalente a B, todos os arquivos em A estão disponíveis em B e vice-versa.
E tem ainda mais!
Marcar diretórios inteiros
$ cp -R ~/Photos/London ~/myfiles/store/photos/@
$ ls -l ~/myfiles/store/photos/@/
London
$ ls -l ~/myfiles/store/photos/@/London/
-rw------- 1 tx0 tx0 2.3M Sep 28 2009 bridge.jpg
-rw------- 1 tx0 tx0 3.0M Aug 30 2011 trafalgar_square.jpg
[ ... more files here ... ]
Com o Tagsistant, você pode marcar diretórios inteiros. O diretório em si será marcado, não os arquivos, economizando espaço na tag db.
Use tags triplas
$ ls ~/myfiles/store/document:/author/eq/Tx0/@
$ ls ~/myfiles/store/document:/title/inc/Strategic/@
$ ls ~/myfiles/store/pictures:/aperture/gt/5.6/@
$ ls ~/myfiles/store/time:/hour/lt/3/@
Tags triplas são tags avançadas formadas por um espaço para nome (terminado por dois pontos) que identifica o domínio de interesse da tag, uma chave que qualifica a tag, um operador (eq para igualdade, gt para maior que, lt para menor que e inc for inclui) e, finalmente, um valor que quantifica a tag.
Essa me parece a abordagem mais consistente e elegante para a marcação de arquivos no Linux. Ela existe há mais de 10 anos, por isso também é uma solução madura, sem o risco de desaparecer em breve.