Etiquetar archivos en Ubuntu

11

¿Cómo puedes establecer etiquetas en archivos en Ubuntu?

Quiero etiquetar todo tipo de archivos:

  • Imágenes
  • Audio
  • Texto
  • Oficina
  • Directorios

La única solución que encontré fue MetaTracker .

Pero este proyecto parece estar muerto.

¿Cómo puedo resolver este problema de escritorio?

Sería increíble si pudieras sincronizar estas etiquetas con un servidor como nextcloud.

guettli
fuente
1
intentado rastreador, pero parece muy roto
Anona112
1
¿Qué tiene de malo este q + a: askubuntu.com/questions/827701/… ?
Rinzwind
1
@Rinzwind gracias por señalar la pregunta 827701. La solución superior debería funcionar. Pero me pregunto por qué se necesita este script. ¿Por qué no hay una aplicación lista para usar? Las bibliotecas de Linux son realmente geniales. No le falta mucho, solo un poco de pulido y linux podrían competir con los productos de manzana. Pero parece que los fanáticos de Linux aman los detalles, se preocupan por los detalles, pero el caso de uso de alto nivel de los usuarios promedio no geek ... a nadie le importa esto. Es triste.
guettli
2
En mi opinión, Linux ya compite con los productos de Apple (y gana cada vez). Simplemente no creo que etiquetar sea tan importante porque nadie realmente lo pide en serio.
Kaz Wolfe
2
@KazWolfe sí, tienes razón, nadie lo pide. Me gusta esta cita: "Si hubiera preguntado a las personas qué querían, habrían dicho caballos más rápidos". - Henry Ford. Lo que quiero decir: si hubiera una API de etiquetado confiable disponible en todas las distribuciones, se podría eliminar una gran cantidad de duplicación de código. El mismo problema se resuelve una y otra vez. Aplicaciones de gestión de fotos hacen, reproductores de música hacerlo, ubuntu buscar (guión) lo hace ...
guettli

Respuestas:

5

La mejor manera parece ser el sistema de archivos de marcado tagsistant .

Desde la página de inicio:

Tagsistant es un sistema de archivos basado en etiquetas para Linux que convierte los directorios en etiquetas y busca sus archivos por usted.

Montura resistente

Simplemente dígale a Tagsistant el nombre del directorio que desea usar, por ejemplo, myfiles / en su hogar. Este directorio ahora es un lugar especial con reglas personalizadas que lo ayudan a administrar sus archivos.

$ tagsistant ~/myfiles
$

Crea tus etiquetas

Piense en los directorios debajo de las etiquetas / como calcomanías blancas sobre las que escribe algo. Cree tantas etiquetas como necesite, listas para marcar sus archivos.

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

Etiqueta tus archivos

Después de crear una etiqueta en tags /, estará disponible en la tienda /. Copie sus archivos dentro: así es como etiqueta los archivos. El @ marca el final de la lista de etiquetas y es obligatorio.

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

Encuentra tus archivos por etiquetas

Componga su consulta de búsqueda eligiendo todas las etiquetas que desee. Incluso puede combinar los resultados de más de una consulta colocando un + / en medio, como en startrek / + / starwars / que combina los archivos etiquetados startrek con los archivos etiquetados starwars.

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

Activar relaciones entre etiquetas

$ 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 comprende varias relaciones:

  • incluye: Si A incluye B, cualquier archivo etiquetado como B se puede encontrar automáticamente dentro de A.
  • excluye: si A excluye a B, no se puede encontrar ningún archivo etiquetado como B dentro de A, incluso si está etiquetado como A.
  • es_equivalente: si A es equivalente a B, entonces todos los archivos en A están disponibles en B y viceversa.

¡Y aún hay más!

Etiquetar directorios completos

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

Con Tagsistant puede etiquetar directorios completos. El directorio en sí será etiquetado, no los archivos dentro, ahorrando espacio en la etiqueta db.

Usa etiquetas 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/@

Las etiquetas triples son etiquetas avanzadas formadas por un espacio de nombres (terminado por dos puntos) que identifica el dominio de interés de la etiqueta, una clave que califica la etiqueta, un operador (eq para igualdad, gt para mayor que, lt para menor que e inc para incluye), y finalmente un valor que cuantifica la etiqueta.

Este me parece el enfoque más consistente y elegante para el etiquetado de archivos en Linux. Ha existido durante más de 10 años, por lo que también es una solución madura, sin el riesgo de desaparecer pronto.

emk2203
fuente
4

Se hizo una pregunta similar anteriormente: seleccionar archivos de diferentes carpetas

¿Es posible en nautilus seleccionar un grupo de archivos de una carpeta, luego ir a una carpeta diferente y agregar algunos archivos más a la selección?

La respuesta aceptada con 6 votos positivos fue "No, desafortunadamente no es posible". .

Al negarme a ser disuadido, escribí un script bash para abordar el problema.


Bafman comienza

En respuesta a la pregunta que desarrollé bafman(Born Again File Manager), que tuvo un poco de éxito porque había poco interés en la respuesta.

Hay 13 pantallas en la respuesta, así que aquí está una de ellas para darle la idea:

bafman 12

El regreso de Bafman

El código bash se publicó en una respuesta separada debajo de la primera, pero las revisiones lo hicieron demasiado grande para caber dentro del límite de 30K, por lo que se eliminó la respuesta. Si alguien está interesado en el script bash, me encantaría resucitar el proyecto y publicarlo en github.

WinEunuuchs2Unix
fuente
Esta pregunta es sobre etiquetar archivos. Esto significa que las etiquetas deberían sobrevivir a un reinicio. Creo que la solución en su respuesta no se ajusta a la pregunta.
guettli
@guettli Las etiquetas sobreviven a los reinicios y se almacenan en .bafmanDirsy .bafmanFiles.
WinEunuuchs2Unix
Lo siento, leo demasiado rápido. Desarrollaste una herramienta llamada bafman. No estoy seguro si la codificación es lo correcto aquí. Tal vez se necesitaría un acuerdo y una especificación simple. ¿Pero quién debería estar de acuerdo? ¿Los desarrolladores de gnomos?
guettli
@guettli Nuestro sitio hermano de Ingeniería de Software tiene personas discutiendo cambios en Gnome Nautilus. Por ejemplo, esta pregunta: softwareengineering.stackexchange.com/questions/149824/… ¿ Es posible que desee registrarse allí y publicar su propia idea desde aquí? En cuanto a las etiquetas que se mueven cuando el archivo se mueve, la única forma en que puedo pensar es usar un campo de atributos de archivo vacío como "Fecha de nacimiento" y enmascararlo con las banderas. Sin embargo, eso hará que la fecha de nacimiento se vea divertida cuando se enumere. Aunque está inactivo, el campo de fecha de nacimiento será utilizado pronto por las aplicaciones más nuevas.
WinEunuuchs2Unix
2

Si los archivos que desea etiquetar están alojados en Nextcloud para compartir archivos, puede usar la aplicación de etiquetado automático de archivos de Nextcloud junto con el etiquetado manual.

Etiquetado automatizado

La descripción oficial dice:

Una aplicación para Nextcloud que asigna automáticamente etiquetas a los archivos recién cargados en función de algunas condiciones.

Las etiquetas se pueden usar más tarde para controlar la retención, el acceso a archivos, la ejecución automática de scripts y más.

ingrese la descripción de la imagen aquí

Funciona para Nextcloud 12 y 13.

Para definir etiquetas, los administradores pueden crear y administrar un conjunto de grupos de reglas. Cada grupo de reglas consta de una o más reglas combinadas a través de operadores. Las reglas pueden incluir criterios como tipo de archivo, tamaño, tiempo y más. Una solicitud coincide con un grupo si todas las reglas se evalúan como verdaderas. Al cargar un archivo, se evalúan todos los grupos definidos y, cuando coinciden, las etiquetas dadas se asignan al archivo.

Etiquetado manual

Y aquí puede ver cómo está disponible el etiquetado manual de archivos desde Owncloud / Nextcloud 9.x usando el administrador de archivos en la vista web.

GOTCHA

Si desea buscar las etiquetas a través del administrador de archivos de escritorio de Ubuntu, entonces esto podría no funcionar a menos que use WebDAV para montar el recurso compartido de red y hacer algo con la API Nextcloud WebDAV .

León
fuente
Extraño pero cierto, solo encontré documentos oficiales en nextcloud.com sobre etiquetado automático, pero no sobre etiquetado manual. ¿Estoy ciego?
guettli
0

También necesitaba etiquetar archivos y decidí que, en ausencia de una forma integrada de hacerlo, implementaría mis etiquetas en los nombres de los archivos. De esa manera, tiene todo el poder de las expresiones bash para buscar archivos con etiquetas particulares, no hay problema de que cp y mv, etc. pierdan las etiquetas, y las etiquetas son visibles en un administrador de archivos gui.

Por ejemplo, podría decidir agregar (etiqueta1, etiqueta2 ...) "al final de cada uno de los nombres de archivo.

Editar: esto me vino bien donde mis etiquetas eran más para indicar la pertenencia al archivo de uno o más de tres grupos. Para una aplicación de etiqueta más general, una sintaxis más fácil de usar (con bash, etc.) al final de los nombres de archivo sería algo así como "nombre de archivo! Etiqueta1! Etiqueta2".

B. Tanner
fuente
Sí, esta es una solución alternativa. Pero es una solución alternativa. No es una solución, no es un plan ni una meta.
guettli
De hecho, es. Un problema es que si cambia las etiquetas de un archivo, el nombre del archivo cambia, por lo que si un script hace referencia al archivo, entonces se rompe a menos que haya tenido la previsión de referirse al archivo de una manera que permita cualquier cantidad de etiquetas después El nombre de archivo base.
B.Tanner
@ B.Tanner Puede evitar el problema de cambio de nombre utilizando nombres de archivo sin etiquetar y agregando las etiquetas creando nombres de archivo con etiquetas vinculadas. Los scripts deben usar los nombres de archivo sin etiquetar para ser independientes del etiquetado.
muclux
@muclux gracias, sí, gran idea. Para mí, personalmente, es solo un problema teórico (no tengo ningún script que opere en los archivos "etiquetados") pero siempre he tenido una sensación un poco incómoda de cambiar el nombre del archivo. Esta podría ser una buena forma de mantener las etiquetas separadas de los archivos reales. Tendrá que pensar en las implicaciones de la copia de seguridad ...
B.Tanner