Wie können Sie Tags für Dateien auf Ubuntu setzen?
Ich möchte alle Arten von Dateien markieren:
Die einzige Lösung, die ich gefunden habe, war MetaTracker .
Aber dieses Projekt scheint tot zu sein.
Wie kann ich dieses Desktop-Problem lösen?
Es wäre umwerfend, wenn Sie diese Tags mit einem Server wie nextcloud synchronisieren könnten.
Der beste Weg scheint das Tagging-Dateisystem zu sein tagsistant .
Von der Homepage:
Tagsistant ist ein tagbasiertes Dateisystem für Linux, das Verzeichnisse in Tags verwandelt und Ihre Dateien nach Ihnen durchsucht.
Mount Tagsistant
Teilen Sie Tagsistant einfach den Namen des Verzeichnisses mit, das Sie verwenden möchten, z. B. myfiles/in your home. Dieses Verzeichnis ist jetzt ein besonderer Ort mit benutzerdefinierten Regeln, mit denen Sie Ihre Dateien verwalten können.
$ tagsistant ~/myfiles
$
Erstellen Sie Ihre Tags
Denken Sie an Verzeichnisse unter Tags/als weiße Aufkleber, auf die Sie etwas schreiben. Erstellen Sie so viele Tags, wie Sie benötigen, und markieren Sie Ihre Dateien.
$ mkdir ~/myfiles/tags/startrek
$ mkdir ~/myfiles/tags/starwars
$ mkdir ~/myfiles/tags/scifi
Kennzeichnen Sie Ihre Dateien
Nachdem Sie ein Tag in Tags/erstellt haben, ist es im Store/verfügbar. Kopieren Sie Ihre Dateien darin: So markieren Sie Dateien. Das @ markiert das Ende der Tag-Liste und ist erforderlich.
$ cp first_contact.avi ~/myfiles/store/startrek/@
$ cp the_return_of_the_jedi.avi ~/myfiles/store/starwars/@
Finden Sie Ihre Dateien anhand von Tags
Stellen Sie Ihre Suchanfrage zusammen, indem Sie so viele Tags auswählen, wie Sie möchten. Sie können die Ergebnisse von mehr als einer Abfrage sogar kombinieren, indem Sie ein +/dazwischen setzen, z. B. in startrek/+/starwars /, wodurch die mit startrek gekennzeichneten Dateien mit den mit starwars gekennzeichneten Dateien zusammengeführt werden.
$ ls ~/myfiles/store/startrek/@
first_contact.avi
$ ls ~/myfiles/store/startrek/+/starwars/@
first_contact.avi
the_return_of_the_jedi.avi
Aktivieren Sie die Beziehungen zwischen 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 versteht mehrere Beziehungen:
Und es gibt noch mehr!
Markieren Sie ganze Verzeichnisse
$ 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 ... ]
Mit Tagsistant können Sie ganze Verzeichnisse taggen. Das Verzeichnis selbst wird markiert, nicht die darin enthaltenen Dateien, wodurch Platz in der Tag-Datenbank gespart wird.
Verwenden Sie Triple-Tags
$ 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/@
Triple-Tags sind erweiterte Tags, die aus einem Namespace (mit einem Doppelpunkt abgeschlossen) bestehen, der die Domain von Interesse des Tags identifiziert, einem Schlüssel, der das Tag qualifiziert, einem Operator (Gleichung für Gleichheit, gt für größer als, lt für kleiner als und inc.) for includes) und schließlich ein Wert, der das Tag quantifiziert.
Dies scheint mir der konsistenteste und eleganteste Ansatz für das Taggen von Dateien unter Linux zu sein. Es gibt es seit mehr als 10 Jahren, daher ist es auch eine ausgereifte Lösung, ohne das Risiko, bald zu verschwinden.
Eine ähnliche Frage wurde zuvor gestellt: Auswählen von Dateien aus verschiedenen Ordnern
Ist es in Nautilus möglich, mehrere Dateien aus einem Ordner auszuwählen, dann in einen anderen Ordner zu wechseln und der Auswahl weitere Dateien hinzuzufügen?
Die akzeptierte Antwort mit 6 Nachstimmen war "Nein, leider ist das nicht möglich." .
Ich wollte mich nicht davon abbringen lassen und schrieb ein Bash-Skript, um das Problem anzugehen.
Als Antwort auf die Frage entwickelte ich bafman
(Born Again File Manager), was nur ein wenig erfolgreich war, weil es wenig Interesse an der Antwort gab.
Die Antwort enthält 13 Bildschirme. Hier ist einer davon, der Ihnen die Idee gibt:
Der Bash-Code wurde in einer separaten Antwort unter dem ersten Code veröffentlicht, aber aufgrund von Überarbeitungen war er zu groß, um in das 30-KB-Limit zu passen, sodass die Antwort gelöscht wurde. Wenn sich jemand für das Bash-Skript interessiert, würde ich das Projekt gerne wiederbeleben und in Github veröffentlichen.
Wenn die Dateien, die Sie markieren möchten, in Nextcloud für die Dateifreigabe gehostet werden, können Sie die App zum automatischen Markieren von Nextcloud-Dateien zusammen mit dem manuellen Markieren verwenden.
Die offizielle Beschreibung lautet:
Eine App für Nextcloud, die neu hochgeladenen Dateien basierend auf bestimmten Bedingungen automatisch Tags zuweist.
Die Tags können später verwendet werden, um die Aufbewahrung, den Dateizugriff, die automatische Skriptausführung und vieles mehr zu steuern.
Es funktioniert für Nextcloud 12 und 13.
Zum Definieren von Tags können Administratoren eine Reihe von Regelgruppen erstellen und verwalten. Jede Regelgruppe besteht aus einer oder mehreren Regeln, die durch Operatoren kombiniert werden. Regeln können Kriterien wie Dateityp, Größe, Zeit und mehr enthalten. Eine Anforderung entspricht einer Gruppe, wenn alle Regeln als wahr ausgewertet werden. Beim Hochladen einer Datei werden alle definierten Gruppen ausgewertet und bei Übereinstimmung die angegebenen Tags der Datei zugewiesen.
Und hier können Sie sehen, wie das manuelle Markieren von Dateien seit Owncloud/Nextcloud 9.x über den Dateimanager in der Webansicht verfügbar ist.
Wenn Sie die Tags über den Ubuntu-Desktop-Dateimanager durchsuchen möchten, funktioniert dies möglicherweise nur, wenn Sie die Netzwerkfreigabe mit WebDAV mounten und etwas mit der Nextcloud WebDAV API tun.
Ich musste auch Dateien mit Tags versehen und entschied, dass ich meine Tags in den Dateinamen von Dateien implementieren würde, wenn es keine integrierte Methode dafür gab. Auf diese Weise haben Sie die volle Leistungsfähigkeit von Bash-Ausdrücken, um nach Dateien mit bestimmten Tags zu suchen, es gibt kein Problem, dass cp und mv usw. die Tags verlieren und die Tags in einem GUI-Dateimanager sichtbar sind.
Sie können beispielsweise festlegen, dass (tag1, tag2 ...) "am Ende jedes Dateinamens eingefügt wird.
Bearbeiten: Dies passte gut zu mir, wo meine Tags eher die Zugehörigkeit zu einer oder mehreren von drei Gruppen anzeigen. Für eine allgemeinere Tag-Anwendung wäre eine einfachere Syntax (mit Bash usw.) am Ende von Dateinamen etwa "Dateiname! Tag1! Tag2".