web-dev-qa-db-fra.com

Un système de fichiers qui utilise des balises plutôt que des dossiers?

Mes fichiers sont un gâchis, j'essaye de les structurer en dossiers avec des noms qui décrivent ce qu'ils sont dans un sens de rupture de classe récursive mais plus tard j'ai du mal à retrouver le fichier quand je vais le chercher (le seul fichier peut éventuellement existent dans de nombreux dossiers).

Quel système de fichiers me permettra de trouver mes fichiers par une combinaison de balises au lieu d'utiliser des dossiers?

S'il y avait un tel système de fichiers, je ne sais pas comment les systèmes d'exploitation s'en tireraient, étant tellement dépendants du système de dossiers. Je suis tombé sur tag2find , ce qui n'est pas trop mal; cela résout mon problème avec la recherche de trucs pour l'instant mais c'est une application, pas un système de fichiers.

111
clinux

Ce que vous demandez est un Database File System . Je connais une implémentation expérimentale pour Linux appelée DBFS . Microsoft a commencé à développer Windows Future Storage (WinFS) - il était prévu de livrer avec Vista mais en raison de problèmes techniques, le projet a été retardé et pour autant que je sache finalement annulé. NTFS est également capable de stocker des métadonnées pour les fichiers mais pas dans une extension d'un système de fichiers de base de données complet.

L'intégration d'un tel système de fichiers dans un système d'exploitation ne devrait pas être si compliquée pour le cœur du système d'exploitation - elle peut simplement s'en tenir au modèle hiérarchique. La partie complexe est le shell (graphique) qui doit exposer la structure et les capacités du système de fichiers à l'utilisateur.

32
Daniel Brückner

Voici quelques systèmes de fichiers que j'ai trouvés en utilisant Google.

TagFS - article "Tag Semantics for Hierarchical File Systems" par Stephan Bloehdorn et Max Völkel, 2006 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.60.4187

dhtfs - "Système de fichiers basé sur le balisage, fournissant des hiérarchies de répertoires dynamiques basées sur les balises associées aux fichiers" une implémentation utilisable, dernière version 2007 http://code.google.com/p/dhtfs/

Tagsistant - Projet "Un système de fichiers sémantique raisonné pour Linux et BSD" en développement actif http://www.tagsistant.net/

Leaftag - "Tagging pour le bureau Linux" une autre implémentation, dernière version 2006 http://www.chipx86.com/w/index.php/Leaftag

En ce qui concerne l'intégration avec les systèmes d'exploitation, je ne pense pas que cela devrait être si difficile. Les systèmes d'exploitation dépendent profondément de la hiérarchie du système de fichiers, mais le système de fichiers basé sur des balises peut imiter la structure du répertoire. Par exemple, dans un système de fichiers basé sur des balises, le chemin /etc/init.d donnera tous les fichiers balisés avec exactement deux balises, à savoir 'etc' et 'init.d'. Pour les fichiers balisés avec d'autres balises ainsi que ces deux balises, leurs balises supplémentaires peuvent apparaître sous forme de répertoires dans /etc/init.d. S'il y a un fichier a.txt avec trois balises c'est-à-dire 'etc', 'init.d' et 'asdf' puis 'asdf' apparaîtra comme répertoire dans /etc/init.d et le chemin complet de a.txt deviendra/etc/init.d/asdf/a.txt.

35
binW

Je suis l'auteur du programme Linux TMSU qui vous permet de baliser des fichiers et de les afficher dans un système de fichiers basé sur des balises.

Voici un exemple d'utilisation:

$ tmsu tag track.mp3 music genre=indie-rock good year=1999
$ tmsu tag melody.mp3 music
$ tmsu tag DC123.jpg photo landscape country=italy year=2014
$ tmsu files music year = 1999
./song.mp3

Et le système de fichiers virtuel:

$ mkdir mp
$ tmsu mount mp
$ ls mp
query  tags
$ ls tags
country  genre  good  landscape  photo  music  year
$ ls tags/music
genre  good  track.1.mp3  melody.2.mp3 year

Les nombres dans les noms de fichiers sont des identifiants qui sont là pour garder les noms de fichiers uniques. Il s'agit de liens symboliques renvoyant aux emplacements d'origine des fichiers.

$ ls tags/music/good  # you can drill down
genre  track.1.mp3  year
$ ls "query/music and good"  # this directory gets automatically created
track.1.mp3

Il est toujours en développement actif. Au moment de la rédaction (octobre 2014), la version 0.4.2 est disponible, mais je publierai bientôt la version 0.5.0.

33
Paul Ruane

Vista et Windows 7 prennent en charge le balisage des fichiers. Voir cet article

6
Johann Strydom

Essayez tagfs . Il s'agit d'un système de fichiers d'espace utilisateur basé sur Fuse. Il peut afficher des répertoires balisés à partir d'un répertoire source dans une vue de filtre de balises.

Par exemple. disons que vous avez un répertoire "vacances en inde" qui est étiqueté "inde" et "photos" et un répertoire "vacances en espagne" étiqueté "espagne" et "photos". Vous pouvez filtrer toutes vos photos en entrant le chemin '/ my_mountpoint/photos'.

Les répertoires sont balisés via un simple fichier texte. Un fichier nommé '.tag' dans le répertoire contient les balises. Plusieurs balises sont séparées par des sauts de ligne.

3
Markus Peröbner

Je suis tombé sur cette question en me posant la même question sur les balises de fichiers du système de fichiers. Je suis alors tombé sur cette application pour Windows XP/Vista appelée TaggedFrog qui peut faire l'affaire. Je ne l'ai pas encore essayé, mais cela semble prometteur.

Pas impatient de parcourir des milliers de fichiers! En tout cas, je serai obligé de passer à Win7 à un moment donné et je pourrai essayer son balisage natif.

3
KJH

J'ai trouvé la conception de l'interface utilisateur de Elyse est merveilleuse. Mais c'est plus un système statique qu'il ne peut pas regarder le dossier et marquer automatiquement le nouveau fichier avec une balise par défaut.

2
misssprite

Sans les avoir essayés ou vus dans la nature, il y a par exemple

2
relet

Il y a TagsForAll pour Windows. Il s'agit d'un gestionnaire de fichiers basé sur des balises. Les balises peuvent avoir une structure hiérarchique. L'interface utilisateur est très simple mais agréable. Version gratuite entièrement fonctionnelle et enregistrer les balises dans la base de données, la version Pro enregistrer les balises également dans le flux NTFS dans un fichier.

2
het_passagier

Je pense aussi depuis longtemps à un système de fichiers basé sur des balises. Quelqu'un a-t-il pensé à une approche plus radicale et plus simple? Pour oublier complètement les dossiers (dossiers simulés uniquement pour des raisons de compatibilité pour les programmes), et mettez toutes les balises directement dans le nom du fichier.

(Nom de fichier classique) _Tag1_Tag2_Tag3 _..... (Extension de fichier)

Mydocument_tag-based-file-system_tags_file-system_stackoverflow_folder_file-name_tagfs.txt

J'aime toujours mettre autant d'informations que possible dans le nom du fichier. Vous pouvez tout trouver dans des millions de fichiers sur tous les systèmes d'exploitation possibles.

La seule limite est la longueur différente du nom de fichier dans evey OS, et cela devient compliqué avec les systèmes actuels.

Un système d'exploitation avancé avec pourrait accéder à un fichier comme celui-ci: Mydocument.txt Et les balises peuvent être modifiées au niveau le plus bas du système d'exploitation, comme en changeant le nom de fichier aujourd'hui. S'il y a soudainement un autre Mydocument.txt, il est automatiquement renommé en Mydocument (2) .txt et ainsi de suite.

Je sais que cette idée n'est pas sans problèmes supplémentaires, pas même mentionnée ici .....

Mais l'idée est sur le point de stocker les balises dans la possibilité de bas niveau la plus basique, accessible à partir de TOUS les systèmes de fichiers passés et futurs. Et ce que tous FS ont en commun, c'est le nom du fichier.

1
UntitledArtists

Je ne pense pas que le support de balisage soit (a) en soi, mais BFS prend en charge des fonctionnalités de métadonnées plutôt intéressantes.

0
pr1001