Dateisystem, das Tags anstelle von Ordnern verwendet?


122

Meine Dateien sind ein Chaos. Ich versuche, sie in Ordner mit Namen zu strukturieren, die beschreiben, was sie in einem rekursiven Klassenaufschlüsselungssinn sind, aber später habe ich Probleme, die Datei wieder zu finden, wenn ich danach suche (die eine Datei kann möglicherweise in vielen Ordnern vorhanden).

Mit welchem ​​Dateisystem kann ich meine Dateien anhand einer Kombination von Tags finden, anstatt Ordner zu verwenden?

Wenn es ein solches Dateisystem gäbe, bin ich mir nicht sicher, wie Betriebssysteme damit umgehen würden, da es so stark vom Ordnersystem abhängig ist. Ich bin auf tag2find gestoßen , was nicht schlecht ist. Es löst mein Problem, Dinge zu finden, aber es ist eine Anwendung, kein Dateisystem.



2
(Stand 2013) Google Mail hat dieses System bereits für Ihre E-Mail-Nachrichten eingerichtet. Damit sie es jetzt in Google Drive implementieren können!
Chharvey

Diese Frage ist ähnlich wie diese
Chharvey

2
Ich habe darüber nachgedacht, ein solches System könnte Ordner und sogar Dateinamen insgesamt entfernen (ganz zu schweigen vom Unsinn der Erweiterungen). So, dass der Pfad, der Name und die eindeutige Kennung einer Datei nur die Menge der Tags sind, die auf sie angewendet werden. Und selbst dann könnte es mehr als eine Datei mit denselben Tags geben, warum nicht. Die Notation könnte dieselbe sein, z. B. document/report/2015/finance/v2.01in der die Reihenfolge der Tags keine Rolle spielt. Das Tolle daran ist, dass Sie nur einige Tags und nicht alle bereitstellen und trotzdem zu den gewünschten Dateien gelangen können.
Petruza

1
@Petruza Ich denke, ein eindeutiges ID-Tag für jede Datei könnte die Tag-Verwaltung schwierig machen. Dateinamen wären neben allgemeineren Tags immer noch eine nützliche Eigenschaft.
Jiggunjer

Antworten:


34

Was Sie fragen, ist ein Datenbank-Dateisystem . Ich kenne eine experimentelle Implementierung für Linux namens DBFS . Microsoft hat mit der Entwicklung von Windows Future Storage (WinFS) begonnen - es sollte mit Vista ausgeliefert werden, aber aufgrund technischer Probleme wurde das Projekt verzögert und meines Wissens endgültig abgebrochen. NTFS ist auch in der Lage, Metadaten für Dateien zu speichern, jedoch nicht in einem Umfang eines voll funktionsfähigen Datenbankdateisystems.

Die Integration eines solchen Dateisystems in ein Betriebssystem sollte für den Kern des Betriebssystems nicht so kompliziert sein - es kann einfach beim hierarchischen Modell bleiben. Der komplexe Teil ist die (grafische) Shell, die dem Benutzer die Struktur und die Funktionen des Dateisystems zugänglich machen muss.


2
ja, WinFS wurde um 2006 abgesagt: p. Könnte DBFS einige Zeit ausprobieren.
Clinux

5
Ich glaube, sie werden auch als semantische Dateisysteme oder relationale Dateisysteme bezeichnet.
Jiggunjer

37

Hier sind einige Dateisysteme, die ich mit Google gefunden habe.

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

dhtfs - "Tagging-basiertes Dateisystem, Bereitstellung dynamischer Verzeichnishierarchien basierend auf mit Dateien verknüpften Tags", eine verwendbare Implementierung, letzte Version 2007 http://code.google.com/p/dhtfs/

Tagsistant - Projekt "Ein logisches Semantik-Dateisystem für Linux und BSD" in aktiver Entwicklung http://www.tagsistant.net/

Leaftag - "Tagging für den Linux-Desktop" eine weitere Implementierung, letzte Version 2006 http://www.chipx86.com/w/index.php/Leaftag

Bei der Integration mit Betriebssystemen denke ich nicht, dass es so schwierig sein sollte. Betriebssysteme sind stark von der Hierarchie des Dateisystems abhängig, aber das tagbasierte Dateisystem kann die Verzeichnisstruktur imitieren. In einem tagbasierten Dateisystem gibt der Pfad beispielsweise /etc/init.dalle Dateien an, die mit genau zwei Tags versehen sind, z. B. 'etc' und 'init.d'. Bei Dateien, die mit anderen Tags sowie diesen beiden Tags versehen sind, können ihre zusätzlichen Tags als Verzeichnisse in /etc/init.d angezeigt werden. Wenn es eine Datei a.txt mit drei Tags gibt, z. B. 'etc', 'init.d' und 'asdf', wird 'asdf' als Verzeichnis in /etc/init.d angezeigt und der vollständige Pfad von a.txt wird zu / etc / init.d / asdf / a.txt.


@clinux: Hier ist eine weitere aktuelle Version , Fuse :: TagLayer , obwohl sie schreibgeschützt zu sein scheint.
isync

35

Ich bin der Autor des Linux-Programms TMSU , mit dem Sie Dateien markieren und in einem tagbasierten Dateisystem anzeigen können.

Hier ist ein Beispiel für die Verwendung:

$ 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

Und das virtuelle Dateisystem:

$ 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

Die Nummern in den Dateinamen sind Bezeichner, die dazu dienen, die Dateinamen eindeutig zu halten. Dies sind symbolische Links zurück zu den ursprünglichen Speicherorten der Dateien.

$ 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

Es befindet sich noch in der aktiven Entwicklung. Zum Zeitpunkt des Schreibens (Oktober 2014) ist 0.4.2 verfügbar, aber ich werde bald 0.5.0 veröffentlichen.


1
Wie kann man das mit Windows machen?
Jonathan

1
@ Jonathan, ja, es gibt einen alten Windows-Build, den Sie ausprobieren können. Beachten Sie, dass es ein bisschen fehlerhaft ist und es keine VFS-Unterstützung gibt. Ich habe weiterhin die Absicht, einen richtigen Port zu erstellen, aber ich möchte zuerst den Kern in einen guten Zustand bringen.
Paul Ruane

Klingt großartig Paul :)
Jonathan


4

Versuchen Sie es mit tagfs . Es ist ein auf Sicherungen basierendes User Space-Dateisystem. Es kann markierte Verzeichnisse aus einem Quellverzeichnis in einer Tag-Filteransicht anzeigen.

Angenommen, Sie haben ein Verzeichnis "Urlaub Indien" mit den Tags "Indien" und "Fotos" und ein Verzeichnis "Urlaub Spanien" mit den Tags "Spanien" und "Fotos". Sie können alle Ihre Fotos filtern, indem Sie den Pfad '/ my_mountpoint / photos' eingeben.

Verzeichnisse werden durch eine einfache Textdatei gekennzeichnet. Eine Datei mit dem Namen '.tag' im Verzeichnis enthält die Tags. Mehrere Tags werden durch Zeilenumbrüche getrennt.


3

Ich bin auf diese Frage gestoßen, als ich mir dieselbe Frage zu Dateisystem-Dateitags gestellt habe. Ich bin dann auf diese Anwendung für Windows XP / Vista namens TaggedFrog gestoßen , die möglicherweise den Trick macht. Ich habe es noch nicht ausprobiert, aber es sieht vielversprechend aus.

Ich freue mich nicht darauf, Tausende von Dateien durchzugehen! Auf jeden Fall werde ich irgendwann gezwungen sein, auf Win7 zu aktualisieren, und kann das native Tagging ausprobieren.


Ich glaube, TaggedFrog unterstützt auch neuere Windows-Versionen.
Jiggunjer


2

Es gibt TagsForAll für Windows. Es ist ein Dateimanager, der auf Tags basiert. Tags können hierarchisch strukturiert sein. Die Benutzeroberfläche ist sehr einfach, aber nett. Kostenlose Version voll funktionsfähig und Tags in der Datenbank speichern, Pro-Version speichern Tags auch innerhalb des NTFS-Streams in einer Datei.


2

Ich fand das UI-Design von Elyse wunderbar. Es ist jedoch eher ein statisches System, das Ordner nicht überwachen und neue Dateien nicht automatisch mit einem Standard-Tag versehen kann.


1

Ich habe lange über ein tagbasiertes Dateisystem nachgedacht. Hat jemand über einen radikaleren und einfacheren Ansatz nachgedacht? Ordner vollständig vergessen (simulierte Ordner nur aus Kompatibilitätsgründen für Programme) und alle Tags direkt in den Dateinamen einfügen.

(Klassischer Dateiname) _Tag1_Tag2_Tag3 _..... (Dateierweiterung)

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

Ich möchte immer so viele Informationen wie möglich in den Dateinamen einfügen. Sie können alles in Millionen von Dateien auf jedem möglichen Betriebssystem finden.

Die einzige Einschränkung ist die unterschiedliche Länge des Dateinamens in jedem Betriebssystem, und es wird mit aktuellen Systemen unübersichtlich.

Ein erweitertes Betriebssystem mit könnte auf eine Datei wie die folgende zugreifen: Mydocument.txt Und die Tags können auf der untersten Ebene des Betriebssystems bearbeitet werden, z. B. wenn Sie heute den Dateinamen ändern. Wenn plötzlich eine andere Mydocument.txt vorhanden ist, wird diese automatisch in Mydocument (2) .txt usw. umbenannt.

Ich weiß, dass diese Idee nicht ohne zusätzliche Probleme ist, die hier nicht einmal erwähnt werden .....

Die Idee ist jedoch dabei, Tags in der einfachsten Möglichkeit auf niedriger Ebene zu speichern, auf die von ALLEN früheren und zukünftigen Dateisystemen aus zugegriffen werden kann. Und was alle FS gemeinsam haben, ist der Dateiname.


Dies klingt nach einer sehr groben Implementierung eines DBFS.
Chuu

Sie mischen Äpfel und Orangen. Dazu wird lediglich die hierarchische Struktur aus dem Verzeichnis in den Dateinamen verschoben. Mit anderen Worten, "alles in einem Verzeichnis" und "Tags in den Dateinamen" sind in einer tagbasierten Welt nicht sinnvoll. Und natürlich möchten Sie nicht, dass Anwendungsprogramme mit 10.000 Dateien umgehen müssen, damit das Betriebssystem Dateien basierend auf einer Tag-Spezifikation effizient bereitstellen kann . Die App sendet dem Betriebssystem also die "Tags", die es zum "Identifizieren der Datei" benötigt, und ... Sie kehren direkt zu den Verzeichnissen oder einem der hier genannten alternativen Dateisysteme zurück.
CoolHandLouis

Der Windows Explorer hat eine Pfadbeschränkung von 255 Zeichen, die leicht zu erreichen ist. Andernfalls sollte das Limit durch das FS-Limit für Dateinamen vorgegeben werden. Ziemlich grob ja, aber immer noch eine schöne Idee. Wenn Sie die Metadaten in der Datei speichern und auf einer niedrigen Ebene filtern möchten, gibt es möglicherweise andere, weniger eingeschränkte Möglichkeiten, z. B. das Anhängen oder Voranstellen von Daten an die Datei oder das Erstellen einer "Sidecar" -Datei mit demselben Dateinamen, jedoch einem anderen Erweiterung, die die Metadaten enthalten würde. Ein weiteres Problem besteht darin, dass das einfache Umbenennen eines Tags möglicherweise Millionen von Dateiänderungsvorgängen erfordert.
Rolf

Eigentlich wurde diese Idee von TagSpaces umgesetzt .
Arnie97

0

Ich glaube nicht, dass ich per se Tagging-Unterstützung hatte (hat), aber BFS unterstützt einige ziemlich coole Metadaten-Funktionen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.