web-dev-qa-db-fra.com

Marquage de fichiers sur Ubuntu

Comment pouvez-vous définir des balises sur des fichiers sur Ubuntu?

Je veux baliser tout type de fichiers:

  • Images
  • L'audio
  • Texte
  • Bureau
  • Répertoires

La seule solution que j'ai trouvée était MetaTracker .

Mais ce projet semble être mort.

Comment puis-je résoudre ce problème de bureau?

Ce serait formidable si vous pouviez synchroniser ces balises avec un serveur comme nextcloud.

10
guettli

Le meilleur moyen semble être le système de fichiers de marquage tagsistant .

De la page d'accueil:

Tagsistant est un système de fichiers basé sur des balises pour Linux qui transforme les répertoires en balises et recherche vos fichiers pour vous.

Monter Tagsistant

Indiquez simplement à Tagsistant le nom du répertoire que vous souhaitez utiliser, par exemple myfiles/à la maison. Ce répertoire est maintenant un endroit spécial avec des règles personnalisées qui vous aident à gérer vos fichiers.

$ tagsistant ~/myfiles
$

Créez vos tags

Pensez aux répertoires sous les balises/sous forme d’autocollants blancs sur lesquels vous écrivez quelque chose. Créez autant de balises que nécessaire, prêtes à marquer vos fichiers.

$ mkdir ~/myfiles/tags/startrek
$ mkdir ~/myfiles/tags/starwars
$ mkdir ~/myfiles/tags/scifi

Marquez vos fichiers

Après avoir créé une balise dans les balises /, elle sera disponible dans le magasin /. Copiez vos fichiers à l’intérieur: c’est ainsi que vous taggez les fichiers. Le @ marque la fin de la liste de balises et est obligatoire.

$ cp first_contact.avi ~/myfiles/store/startrek/@
$ cp the_return_of_the_jedi.avi ~/myfiles/store/starwars/@

Trouvez vos fichiers par tags

Composez votre requête de recherche en choisissant autant de tags que vous le souhaitez. Vous pouvez même combiner les résultats de plusieurs requêtes en plaçant un signe +/entre, comme dans startrek/+/starwars /, qui fusionne les fichiers étiquetés startrek avec les fichiers étiquetés starwars.

$ ls ~/myfiles/store/startrek/@
first_contact.avi
$ ls ~/myfiles/store/startrek/+/starwars/@
first_contact.avi
the_return_of_the_jedi.avi

Activer les relations entre les 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 comprend plusieurs relations:

  • includes: Si A inclut B, tout fichier marqué comme B peut être trouvé automatiquement dans A.
  • excludes: si A exclut B, aucun fichier étiqueté en tant que B ne peut être trouvé dans A même s'il est étiqueté en tant que A.
  • is_equivalent: Si A est équivalent à B, tous les fichiers de A sont disponibles dans B et inversement.

Et il y a encore plus!

Marquer des annuaires entiers

$ 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 ... ]

Avec Tagsistant, vous pouvez marquer des répertoires entiers. Le répertoire lui-même sera étiqueté, pas les fichiers qu'il contient, ce qui économise de l'espace dans la balise db.

Utiliser des tags triples

$ 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/@

Les étiquettes triples sont des étiquettes avancées formées par un espace de noms (terminé par un signe deux-points) qui identifie le domaine d'intérêt de l'étiquette, une clé qui qualifie l'étiquette, un opérateur (eq pour l'égalité, gt pour supérieur à, lt pour inférieur à et inc. for includes), et enfin une valeur qui quantifie le tag.

Cela me semble l’approche la plus cohérente et la plus élégante pour le marquage de fichiers sous Linux. Cela dure depuis plus de 10 ans, c'est donc une solution mature, sans risque de disparition prochaine.

5
emk2203

Une question similaire avait déjà été posée: Sélection de fichiers dans différents dossiers

Est-il possible dans Nautilus de sélectionner un groupe de fichiers dans un dossier, puis d'accéder à un autre dossier et d'ajouter des fichiers supplémentaires à la sélection?

La réponse acceptée avec 6 votes positifs était "Non, malheureusement, ce n'est pas possible." .

Refusant d'être dissuadée, j'ai écrit un script bash pour résoudre le problème.


Bafman commence

En réponse à la question, j’ai développé bafman (Born Again File Manager), qui n’a que peu de succès, car la réponse ne suscitait guère d’intérêt.

Il y a 13 écrans dans la réponse, alors voici l'un d'eux pour vous donner l'idée:

bafman 12

Les retours de Bafman

Le code bash a été posté dans une réponse séparée en dessous du premier mais les révisions l'ont rendu trop volumineux pour tenir dans la limite de 30K, donc la réponse a été supprimée. Si quelqu'un est intéressé par le script bash, je serais heureux de ressusciter le projet et de le poster dans github.

4
WinEunuuchs2Unix

Si les fichiers que vous souhaitez marquer sont hébergés dans Nextcloud pour le partage de fichiers, vous pouvez utiliser l'application de marquage automatisé de fichiers Nextcloud avec le marquage manuel.

Marquage automatisé

La description officielle se lit comme suit:

Une application pour Nextcloud qui attribue automatiquement des balises aux fichiers récemment téléchargés en fonction de certaines conditions.

Les balises peuvent ensuite être utilisées pour contrôler la rétention, l'accès aux fichiers, l'exécution automatique de scripts, etc.

enter image description here

Cela fonctionne pour Nextcloud 12 et 13.

Pour définir des balises, les administrateurs peuvent créer et gérer un ensemble de groupes de règles. Chaque groupe de règles consiste en une ou plusieurs règles combinées par des opérateurs. Les règles peuvent inclure des critères tels que le type de fichier, la taille, l'heure et plus encore. Une demande correspond à un groupe si toutes les règles sont évaluées à true. Lors du téléchargement d'un fichier, tous les groupes définis sont évalués et lors de la mise en correspondance, les balises données sont attribuées au fichier.

Marquage manuel

Et ici vous pouvez voir comment le balisage manuel des fichiers est disponible depuis Owncloud/Nextcloud 9.x en utilisant le gestionnaire de fichiers dans la vue Web.

JE T'AI EU

Si vous souhaitez rechercher les balises via le gestionnaire de fichiers du bureau Ubuntu, cela risque de ne pas fonctionner si vous n'utilisez pas WebDAV pour monter le partage réseau et effectuez une opération avec Nextcloud WebDAV API .

2
Leo

J'avais aussi besoin de baliser les fichiers et j'ai décidé qu'en l'absence d'une méthode intégrée, je mettrais mes balises en place dans les noms de fichiers des fichiers. De cette façon, vous avez toute la puissance des expressions bash pour rechercher des fichiers avec des balises particulières. Il n’ya aucun problème de perte de balises entre cp, mv, etc., et les balises sont visibles dans un gestionnaire de fichiers gui.

Par exemple, vous pouvez décider d’ajouter (tag1, tag2 ...) "à la fin de chacun des noms de fichiers.

Éditer: cela me convenait bien là où mes balises indiquaient plutôt l’appartenance à un fichier appartenant à un ou plusieurs des trois groupes. Pour une application de balise plus générale, une syntaxe plus simple à utiliser (avec bash, etc.) à la fin des noms de fichiers serait quelque chose comme "filename! Tag1! Tag2".

0
B.Tanner