2010-07-16 12 views
93

Mis archivos son un desastre, trato de estructurarlos en carpetas con nombres que describen lo que son en un sentido recursivo de clase desglosada, pero más adelante tengo problemas para encontrar el archivo nuevamente cuando lo busco (el archivo único posiblemente puede existir en muchas carpetas).Sistema de archivos que usa etiquetas en lugar de carpetas?

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

Si existiera un sistema de archivos de este tipo, no estoy seguro de cómo funcionarían los sistemas operativos, ya que dependen mucho del sistema de carpetas. Me encontré con tag2find, lo cual no está nada mal; resuelve mi problema de encontrar cosas por ahora, pero es una aplicación, no un sistema de archivos.

+0

Relacionados: http://stackoverflow.com/q/876188/89771 –

+1

(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

+0

esta pregunta es similar a [ésta] (http://stackoverflow.com/questions/2393621/tagging-file-system-instead-of-directories?rq=1) – chharvey

Respuesta

27

Lo que se está pidiendo es una Database File System. Conozco una implementación experimental para Linux llamada DBFS. Microsoft comenzó a desarrollar Windows Future Storage (WinFS) - se planeó enviar 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 para 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 seguir con el modelo jerárquico. La parte compleja es el shell (gráfico) que debe exponer la estructura y las capacidades del sistema de archivos al usuario.

+2

sí, WinFS fue cancelado alrededor de 2006: p. Podría probar DBFS alguna vez. – clinux

+2

Creo que también se llaman sistemas de archivos * semánticos * o sistemas de archivos * relacionales *. – jiggunjer

6

Vista y Windows 7 admiten el etiquetado de archivos. See this article

+7

Desafortunadamente, no todos los tipos de archivos se pueden etiquetar de esa manera. – clinux

0

No creo que haya (tenga) soporte de etiquetado per se pero BFS es compatible con algunas funcionalidades de metadatos geniales.

31

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

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

dhtfs - "sistema de ficheros basado etiquetado, proporcionando jerarquías de directorios dinámicos basado en etiquetas asociadas con los archivos" una aplicación utilizable, la última versión 2007 http://code.google.com/p/dhtfs/

Tagsistant - "Un sistema de archivos semántica razonamiento para Linux y BSD" proyecto bajo desarrollo activo http://www.tagsistant.net/

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

en la integración con los sistemas operativos, yo no creo que debería 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 del directorio. Por ejemplo, en un sistema de archivos basado en etiquetas, la ruta /etc/init.d dará todos los archivos etiquetados con exactamente dos etiquetas, es decir, "etc." e "init.d".Para los archivos que están etiquetados con otras etiquetas, así como 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' & '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.

+0

@clinux: Aquí hay otra reciente, [Fuse :: TagLayer] (https://github.com/clipland/fuse-taglayer), aunque parece ser de solo lectura. – isync

+0

Una más con semántica de etiquetas sin fisuras: https://code.google.com/p/tagfilesystem/ –

3

Pruebe 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 etiqueta.

E.g. digamos que tiene un directorio 'vacation india' que está etiquetado 'india' y 'fotos' y un directorio 'vacation spain' etiquetado 'spain' y 'photos'. Puede filtrar todas sus fotos ingresando la ruta '/ my_mountpoint/photos'.

Los directorios se etiquetan a través de un archivo de texto simple. Un archivo llamado '.tag' en el directorio contiene las etiquetas. Múltiples etiquetas están separadas por líneas nuevas.

3

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

¡No tengo muchas ganas de ir a través de miles de archivos! En cualquier caso, me veré obligado a actualizar a Win7 en algún momento y puedo probar su etiquetado nativo.

+0

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

1

He estado pensando también en un sistema de archivos basado en etiquetas desde hace mucho tiempo. ¿Alguien ha pensado en un enfoque más radical y simple? Para olvidar las carpetas por completo (carpetas simuladas solo por razones de compatibilidad para los programas), y poner todas las etiquetas directamente en el nombre del archivo.

(Classic Nombre de archivo) _Tag1_Tag2_Tag3 _..... (Extensión del archivo)

basada en Mydocument_tag-file-system_tags_file-system_stackoverflow_folder_file-name_tagfs.txt

siempre me gusta poner la mayor cantidad de información 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 del archivo diferente en cada sistema operativo, y se vuelve complicado con los sistemas actuales.

Un sistema operativo avanzado con podría tener acceso 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 renombra automáticamente a Mydocument (2) .txt y así sucesivamente.

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

pero la idea es a punto de guardar las etiquetas en la posibilidad más básico de bajo nivel, que se puede acceder desde todos los anteriores y futuros sistemas de archivos. Y lo que todos los FS tienen en común es el nombre del archivo.

+0

Esto suena como una implementación muy cruda de un DBFS. – Chuu

+0

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 tiene sentido en un mundo basado en etiquetas.Y, por supuesto, no querría que los programas de aplicación tengan que lidiar con 10.000 de archivos para que el sistema operativo tenga que * entregar * de manera eficiente los archivos en función de una especificación de etiqueta. Entonces, la aplicación envía al sistema operativo las "etiquetas" que necesita para "identificar el archivo" y ... vuelve directamente a cualquiera de los directorios o a uno de los sistemas de archivos alternativos que se mencionan aquí. – CoolHandLouis

+0

Windows Explorer tiene un límite de ruta de 255 caracteres, que se puede alcanzar fácilmente. De lo contrario, el límite debe ser dictado por el límite de FS en los nombres de archivo. Bastante crudo, sí, pero sigue siendo una buena idea. Si desea almacenar los metadatos en el archivo y filtrarlo en 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 pero diferente extensión, que contendría los metadatos. Otro problema es que simplemente cambiar el nombre de una etiqueta puede requerir un millón de operaciones de modificación de archivos. – Rolf

22

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

Aquí es un poco de 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 ficheros 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 los identificadores que están ahí para mantener los nombres de archivo único. 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. Al momento de escribir (octubre de 2014) 0.4.2 está disponible, pero pronto lanzaré 0.5.0.

+1

¿Alguna forma de usar esto con Windows? – Jonathan

+1

@Jonathan, sí, hay [una versión anterior de Windows] (https://github.com/oniony/TMSU/releases/download/v0.5.0/tmsu-x86_64-0.5.0.zip) que puede probar. Tenga en cuenta que es un poco defectuoso y no hay soporte VFS. Sigo pensando en hacer un puerto adecuado, pero primero quiero que el núcleo esté en buen estado. –

+0

Suena increíble Paul :) – Jonathan

1

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. La versión gratuita es totalmente funcional y guarda las etiquetas en la base de datos, las etiquetas para guardar la versión Pro también se transmiten en NTFS a un archivo.

1

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 el nuevo archivo con una etiqueta predeterminada automáticamente.

Cuestiones relacionadas