¿Sistema de archivos que usa etiquetas en lugar de carpetas?

122

Mis archivos son un desastre, trato de estructurarlos en carpetas con nombres que describan lo que son en un sentido de desglose de clases recursivo, pero luego tengo problemas para encontrar el archivo nuevamente cuando lo busco (el único archivo puede posiblemente existen en muchas carpetas).

¿Qué sistema de archivos me permitirá encontrar mis archivos mediante una combinación de etiquetas en lugar de utilizar carpetas?

Si hubiera un sistema de archivos de este tipo, no estoy seguro de cómo se las arreglarían los sistemas operativos, siendo tan profundamente dependiente del sistema de carpetas. Me encontré con tag2find , que no está tan mal; resuelve mi problema para encontrar cosas por ahora, pero es una aplicación, no un sistema de archivos.

clinux
fuente
Relacionado: stackoverflow.com/q/876188/89771
Alix Axel
2
(a partir de 2013) Gmail ya tiene este sistema en su lugar con sus mensajes de correo electrónico. ¡Ahora para que lo implementen en Google Drive!
chharvey
esta pregunta es similar a esta
chharvey
2
He pensado en esto, tal sistema podría deshacerse de carpetas e incluso nombres de archivos por completo (sin mencionar las tonterías de las extensiones). De tal manera que la ruta, el nombre y el identificador único de un archivo serían solo el conjunto de etiquetas que se le aplican. E incluso entonces, podría haber más de un archivo con el mismo conjunto de etiquetas, ¿por qué no? La notación podría ser la misma, por ejemplo, document/report/2015/finance/v2.01en la que el orden de las etiquetas no importaría. Lo mejor de esto es que puede proporcionar algunas etiquetas y no todas, y aún así obtener los archivos que desee.
Petruza
1
@Petruza Creo que tener una etiqueta de identificación única para cada archivo puede dificultar la administración de etiquetas. Los nombres de archivo seguirían siendo una propiedad útil además de las etiquetas más generales.
jiggunjer

Respuestas:

34

Lo que está pidiendo es un sistema de archivos de base de datos . Conozco una implementación experimental para Linux llamada DBFS . Microsoft comenzó a desarrollar Windows Future Storage (WinFS) ; estaba previsto que se distribuyera con Vista, pero debido a problemas técnicos, el proyecto se retrasó y, hasta donde yo sé, finalmente se canceló. NTFS también es capaz de almacenar metadatos para archivos, pero no en la extensión de un sistema de archivos de base de datos con todas las funciones.

La integración de un sistema de archivos de este tipo en un sistema operativo no debería ser tan complicada para el núcleo del sistema operativo; simplemente puede ceñirse al modelo jerárquico. La parte compleja es el shell (gráfico) que debe exponer al usuario la estructura y las capacidades del sistema de archivos.

Daniel Brückner
fuente
2
sí, WinFS se canceló alrededor de 2006: p. Podría probar DBFS alguna vez.
clinux
5
Creo que también se les llama sistemas de archivos semánticos o sistemas de archivos relacionales .
jiggunjer
37

Aquí hay algunos sistemas de archivos que encontré usando google.

TagFS: documento "Semántica de etiquetas para sistemas de archivos jerárquicos" de Stephan Bloehdorn y Max Völkel, 2006 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.60.4187

dhtfs - "Sistema de archivos basado en etiquetado, que proporciona jerarquías de directorios dinámicas basadas en etiquetas asociadas con archivos" una implementación utilizable, última versión 2007 http://code.google.com/p/dhtfs/

Tagsistant - Proyecto "Un sistema de archivos semántico de razonamiento para Linux y BSD" en desarrollo activo http://www.tagsistant.net/

Leaftag - "Etiquetado para el escritorio de Linux" otra implementación, última versión 2006 http://www.chipx86.com/w/index.php/Leaftag

Sobre la integración con sistemas operativos, no creo que deba ser tan difícil. Los sistemas operativos dependen en gran medida de la jerarquía del sistema de archivos, pero el sistema de archivos basado en etiquetas puede imitar la estructura de directorios. Por ejemplo, en un sistema de archivos basado en etiquetas, la ruta /etc/init.dproporcionará todos los archivos etiquetados con exactamente dos etiquetas, es decir, 'etc' e 'init.d'. Para los archivos que están etiquetados con otras etiquetas, además de estas dos etiquetas, sus etiquetas adicionales pueden aparecer como directorios dentro de /etc/init.d. Si hay un archivo a.txt con tres etiquetas, es decir, 'etc', 'init.d' y 'asdf', entonces 'asdf' aparecerá como directorio dentro de /etc/init.d y la ruta completa de a.txt se convertirá en / etc / init.d / asdf / a.txt.

binW
fuente
@clinux: Aquí hay otro reciente, Fuse :: TagLayer , aunque parece ser de solo lectura.
isync
35

Soy el autor del programa TMSU de Linux que le permite etiquetar archivos y verlos en un sistema de archivos basado en etiquetas.

Aquí hay un ejemplo de uso:

$ 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

Y el sistema de archivos virtual:

$ 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

Los números en los nombres de archivo son identificadores que están ahí para mantener los nombres de archivo únicos. Estos son enlaces simbólicos a las ubicaciones originales de los archivos.

$ 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

Todavía está en desarrollo activo. En el momento de escribir este artículo (octubre de 2014) 0.4.2 está disponible, pero lanzaré 0.5.0 pronto.

Paul Ruane
fuente
1
¿Alguna forma de usar esto con Windows?
Jonathan
1
@Jonathan, sí, hay una versión antigua de Windows que puedes probar. Tenga en cuenta que tiene un poco de errores y no hay soporte para VFS. Sigo pensando en hacer un puerto adecuado, pero primero quiero que el núcleo esté en buen estado.
Paul Ruane
Suena increíble Paul :)
Jonathan
6

Vista y Windows 7 admiten el etiquetado de archivos. Ver este articulo

Johann Strydom
fuente
9
Desafortunadamente, no todos los tipos de archivos pueden etiquetarse de esa manera.
clinux
4

Prueba con tagfs . Es un sistema de archivos de espacio de usuario basado en fusibles. Puede mostrar directorios etiquetados de un directorio de origen en una vista de filtro de etiquetas.

Por ejemplo, digamos que tiene un directorio 'vacaciones en la india' que está etiquetado como 'india' y 'fotos' y un directorio 'vacaciones en españa' etiquetado como 'españa' y 'fotos'. Puede filtrar todas sus fotos ingresando la ruta '/ my_mountpoint / photos'.

Los directorios se etiquetan mediante un archivo de texto simple. Un archivo llamado '.tag' en el directorio contiene las etiquetas. Varias etiquetas están separadas por líneas nuevas.

Markus Peröbner
fuente
3

Me encontré con esta pregunta mientras me hacía la misma pregunta sobre las etiquetas de archivo del sistema de archivos. Luego encontré esta aplicación para Windows XP / Vista llamada TaggedFrog que puede hacer el truco. Aún no lo he probado, pero parece prometedor.

¡Sin embargo, no tengo ganas de revisar miles de archivos! En cualquier caso, me veré obligado a actualizar a Win7 en algún momento y podré probar su etiquetado nativo.

KJH
fuente
Creo que TaggedFrog también es compatible con las versiones más nuevas de Windows.
jiggunjer
2

Hay TagsForAll para Windows. Es un administrador de archivos basado en etiquetas. Las etiquetas pueden tener una estructura jerárquica. La interfaz de usuario es muy simple pero agradable. Versión gratuita totalmente funcional y guardar etiquetas en la base de datos, la versión Pro guarda etiquetas también dentro de la transmisión NTFS a un archivo.

het_passagier
fuente
2

Encontré que el diseño de la interfaz de usuario de Elyse es maravilloso. Pero es más un sistema estático que no puede ver la carpeta y etiquetar un nuevo archivo con una etiqueta predeterminada automáticamente.

misssprite
fuente
1

También he estado pensando en un sistema de archivos basado en etiquetas durante mucho tiempo. ¿Alguien ha pensado en un enfoque más radical y simple? Olvidar carpetas por completo (carpetas simuladas solo por razones de compatibilidad de programas) y poner todas las etiquetas directamente en el nombre del archivo.

(Nombre de archivo clásico) _Tag1_Tag2_Tag3 _..... (Extensión de archivo)

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

Siempre me gusta poner tanta información como sea posible en el nombre del archivo. Puede encontrar todo en millones de archivos en todos los sistemas operativos posibles.

El único límite es la longitud del nombre de archivo diferente en cada sistema operativo, y se complica con los sistemas actuales.

Un sistema operativo avanzado podría acceder a un archivo como este: Mydocument.txt Y las etiquetas se pueden editar en el nivel más bajo del sistema operativo, como cambiar el nombre de archivo hoy. Si de repente aparece otro Mydocument.txt, se le cambia automáticamente el nombre a Mydocument (2) .txt y así sucesivamente.

Sé que esta idea no está exenta de problemas adicionales, ni siquiera se menciona aquí .....

Pero la Idea está a punto de almacenar etiquetas en la posibilidad más básica de bajo nivel, a la que se puede acceder desde TODOS los sistemas de archivos pasados ​​y futuros. Y lo que todos los FS tienen en común es el nombre del archivo.

Sin títuloArtistas
fuente
Esto suena como una implementación muy burda de un DBFS.
Chuu
Estás mezclando manzanas y naranjas. Todo lo que hace es mover la estructura jerárquica del directorio al nombre del archivo. O en otras palabras, "todo en un directorio" y "etiquetas en los nombres de archivo" no tienen sentido en un mundo basado en etiquetas. Y, por supuesto, no querrá que los programas de aplicación tengan que lidiar con 10,000 de archivos, por lo que el sistema operativo tendría que entregar archivos de manera eficiente según una especificación de etiqueta. Entonces, la aplicación envía al sistema operativo las "etiquetas" que necesita para "identificar el archivo" y ... estás de vuelta a los directorios o uno de los sistemas de archivos alternativos mencionados aquí.
CoolHandLouis
El explorador de Windows tiene un límite de ruta de 255 caracteres, que se alcanza fácilmente. De lo contrario, el límite debería estar dictado por el límite de FS en nombres de archivo. Bastante crudo, sí, pero sigue siendo una buena idea. Si desea almacenar los metadatos en el archivo y filtrarlos a un nivel bajo, puede haber otras formas menos limitadas, como agregar o anteponer datos al archivo, o tener un archivo "sidecar" con el mismo nombre de archivo pero diferente extensión, que contendría los metadatos. Otro problema es que simplemente cambiar el nombre de una etiqueta puede requerir millones de operaciones de modificación de archivos.
Rolf
En realidad, esta idea fue implementada por TagSpaces .
Arnie97
0

No creo que tuviera (tenga) soporte de etiquetado per se, pero BFS admite algunas funciones de metadatos bastante interesantes.

pr1001
fuente