Файловая система, использующая теги, а не папки?


123

Мои файлы в беспорядке, я пытаюсь структурировать их в папки с именами, которые описывают то, что они собой представляют, в смысле рекурсивной разбивки классов, но позже у меня возникают проблемы с поиском файла снова, когда я ищу его (один файл может быть существуют во многих папках).

Какая файловая система позволит мне находить файлы по комбинации тегов вместо использования папок?

Если бы существовала такая файловая система, я не уверен, как бы справились операционные системы, так как они сильно зависят от системы папок. Я наткнулся на tag2find , что неплохо; это решает мою проблему с поиском материалов на данный момент, но это приложение, а не файловая система.



2
(по состоянию на 2013 год) Gmail уже использует эту систему для обработки ваших сообщений электронной почты. Теперь, чтобы заставить их реализовать это на Google Диске!
— chharvey

этот вопрос похож на этот
— chharvey

2
Я думал об этом, такая система могла бы вообще избавиться от папок и даже имен файлов (не говоря уже о чепухе с расширениями). Таким образом, путь, имя и уникальный идентификатор файла будут просто набором тегов, которые к нему применяются. И даже тогда может быть несколько файлов с одинаковым набором тегов, почему бы и нет. Обозначения могут быть такими же, например, document/report/2015/finance/v2.01в котором порядок тегов не имеет значения. Самое замечательное в этом то, что вы можете просто указать некоторые теги, а не все, и при этом получить нужный файл (ы).
— Петруза

1
@Petruza Я думаю, что наличие уникального идентификатора для каждого файла может затруднить управление тегами. Имена файлов по-прежнему будут полезным свойством в дополнение к более общим тегам.
— jiggunjer

Ответы:


34

То, что вы просите, - это файловая система базы данных . Я знаю одну экспериментальную реализацию для Linux под названием DBFS . Microsoft начала разработку Windows Future Storage (WinFS) - планировалось, что она будет поставляться с Vista, но из-за технических проблем проект был отложен и, насколько мне известно, окончательно отменен. NTFS также может хранить метаданные для файлов, но не в пределах полнофункциональной файловой системы базы данных.

Интеграция такой файловой системы в операционную систему не должна быть такой сложной для ядра операционной системы - можно просто придерживаться иерархической модели. Сложная часть - это (графическая) оболочка, которая должна открывать пользователю структуру и возможности файловой системы.


2
да, WinFS была отменена примерно в 2006 г .: с. Возможно, когда-нибудь попробуем DBFS.
— Clinux

5
Я считаю, что их также называют семантическими файловыми системами или реляционными файловыми системами.
— jiggunjer

38

Вот несколько файловых систем, которые я нашел с помощью Google.

TagFS - статья Стефана Блодорна и Макса Фёлькеля «Семантика тегов для иерархических файловых систем», 2006 г. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.60.4187

dhtfs - "Файловая система на основе тегов, обеспечивающая динамическую иерархию каталогов на основе тегов, связанных с файлами", полезная реализация, последний выпуск 2007 г. http://code.google.com/p/dhtfs/

Tagsistant - проект "Семантическая файловая система рассуждений для Linux и BSD" в стадии активной разработки http://www.tagsistant.net/

Leaftag - еще одна реализация "Tagging for the Linux desktop", последний выпуск 2006 г. http://www.chipx86.com/w/index.php/Leaftag

Что касается интеграции с ОС, я не думаю, что это должно быть так сложно. Операционные системы сильно зависят от иерархии файловой системы, но файловая система на основе тегов может имитировать структуру каталогов. Например, в файловой системе, основанной на тегах, путь /etc/init.dбудет содержать все файлы, помеченные ровно двумя тегами, то есть 'etc' и 'init.d'. Для файлов, которые помечены другими тегами, а также этими двумя тегами, их дополнительные теги могут отображаться как каталоги внутри /etc/init.d. Если есть файл a.txt с тремя тегами, то есть 'etc', 'init.d' и 'asdf', тогда 'asdf' появится как каталог внутри /etc/init.d, а полный путь к a.txt станет / и т.д. / init.d / ASDF / a.txt.


@clinux: Вот еще один недавний, Fuse :: TagLayer , хотя, похоже, он доступен только для чтения.
— isync

36

Я являюсь автором программы TMSU для Linux, которая позволяет помечать файлы и просматривать их в файловой системе на основе тегов.

Вот несколько примеров использования:

$ 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

И виртуальная файловая система:

$ 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

Цифры в именах файлов - это идентификаторы, позволяющие сохранить уникальность имен файлов. Это символические ссылки на исходное расположение файлов.

$ 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

Он все еще находится в активной разработке. На момент написания (октябрь 2014 г.) доступна версия 0.4.2, но я скоро выпущу 0.5.0.


1
Любой способ использовать это с Windows?
— Джонатан

1
@ Джонатан, да, есть старая сборка Windows, которую вы можете попробовать. Обратите внимание, что он немного глючит и нет поддержки VFS. Я по-прежнему хочу заняться правильным портированием, но сначала хочу привести ядро ​​в хорошее состояние.
— Paul Ruane

Звучит потрясающе, Пол :)
— Джонатан


5

Попробуйте tagfs . Это файловая система пользовательского пространства на основе плавких предохранителей. Он может отображать каталоги с тегами из исходного каталога в представлении фильтра тегов.

Например, у вас есть каталог «отпуск в Индии» с тегами «Индия» и «фотографии» и каталог «отпуск в Испании» с тегами «испания» и «фотографии». Вы можете отфильтровать все свои фотографии, введя путь '/ my_mountpoint / photos'.

Каталоги размечены посредством простого текстового файла. Файл с именем '.tag' в каталоге содержит теги. Несколько тегов разделяются символами новой строки.


3

Я столкнулся с этим вопросом, задавая себе тот же вопрос о тегах файлов файловой системы. Затем я наткнулся на это приложение для Windows XP / Vista под названием TaggedFrog, которое может помочь. Еще не пробовал, но выглядит многообещающе.

Однако не с нетерпением жду просмотра тысяч файлов! В любом случае, в какой-то момент мне придется перейти на Win7, и я могу попробовать его встроенную маркировку.


Я считаю, что TaggedFrog поддерживает и более новые версии Windows.
— jiggunjer


2

Я также давно думал о файловой системе на основе тегов. Кто-нибудь думал о более радикальном и простом подходе? Чтобы полностью забыть папки (смоделированные папки только из соображений совместимости программ) и поместить все теги прямо в имя файла.

(Классическое имя файла) _Tag1_Tag2_Tag3 _..... (Расширение файла)

Mydocument_tag основе-файлов system_tags_file-system_stackoverflow_folder_file-name_tagfs.txt

Мне всегда нравится помещать как можно больше информации в имя файла. Вы можете найти все в миллионах файлов во всех возможных ОС.

Единственное ограничение - это различная длина имени файла в evey OS, и это становится беспорядком с текущими системами.

Усовершенствованная ОС может получить доступ к следующему файлу: Mydocument.txt И теги можно редактировать на самом низком уровне ОС, как сегодня можно изменить имя файла. Если вдруг появляется другой файл Mydocument.txt, он автоматически переименовывается в Mydocument (2) .txt и так далее.

Я знаю, что эта идея не лишена дополнительных проблем, даже не упомянутых здесь ...

Но идея собирается хранить теги в самой простой возможности низкого уровня, к которой можно получить доступ из ВСЕХ прошлых и будущих файловых систем. А общее у всех ФС - это имя файла.


Это звучит как очень грубая реализация DBFS.
— Chuu

Вы смешиваете яблоки и апельсины. Все это приводит к перемещению иерархической структуры из каталога к имени файла. Или, другими словами, «все в одном каталоге» и «теги в именах файлов» не имеют смысла в мире, основанном на тегах. И, конечно же, вы бы не хотели, чтобы прикладным программам приходилось иметь дело с 10 000 файлов, поэтому ОС должна была бы эффективно доставлять файлы на основе спецификации тега. Таким образом, приложение отправляет ОС «теги», необходимые для «идентификации файла», и ... вы сразу возвращаетесь либо в каталоги, либо в одну из альтернативных файловых систем, упомянутых здесь.
— CoolHandLouis

Проводник Windows имеет ограничение пути в 255 символов, что легко достигается. В противном случае ограничение должно быть продиктовано ограничением FS на имена файлов. Да, довольно грубо, но все же хорошая идея. Если вы хотите сохранить метаданные в файле и отфильтровать их на низком уровне, могут быть другие менее ограниченные способы, такие как добавление или добавление данных к файлу или наличие вспомогательного файла с тем же именем файла, но другим расширение, которое будет содержать метаданные. Другая проблема заключается в том, что простое переименование тега может потребовать миллиона операций изменения файла.
— Rolf

Собственно эту идею реализовал TagSpaces .
— Arnie97

2

Для windows есть TagsForAll . Это файловый менеджер, основанный на тегах. Теги могут иметь иерархическую структуру. Пользовательский интерфейс очень простой, но приятный. Бесплатная версия полностью функциональна и сохраняет теги в базе данных, версия Pro сохраняет теги также в потоке NTFS в файл.


2

Я считаю, что дизайн пользовательского интерфейса Elyse великолепен. Но это скорее статическая система, которая не может автоматически просматривать папку и помечать новый файл тегом по умолчанию.


0

Я не думаю, что была (есть) поддержка тегов как таковая, но BFS поддерживает некоторые довольно интересные функции метаданных.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.