Лучший способ , как представляется, файловая система мечения tagsistant .
С домашней страницы:
Tagsistant - это файловая система на основе тегов для Linux, которая превращает каталоги в теги и ищет ваши файлы для вас.
Mount Tagsistant
Просто скажите Tagsistant имя каталога, который вы хотите использовать, например, myfiles / у себя дома. Этот каталог теперь является специальным местом с пользовательскими правилами, которые помогают вам управлять вашими файлами.
$ tagsistant ~/myfiles
$
Создайте свои теги
Подумайте о каталогах под тегами / как белые наклейки, над которыми вы что-то пишете. Создайте столько тегов, сколько вам нужно, чтобы пометить свои файлы.
$ mkdir ~/myfiles/tags/startrek
$ mkdir ~/myfiles/tags/starwars
$ mkdir ~/myfiles/tags/scifi
Отметьте свои файлы
После создания тега в тегах / он будет доступен в магазине /. Скопируйте ваши файлы внутри него: вот как вы помечаете файлы. @ Обозначает конец списка тегов, и это обязательно.
$ cp first_contact.avi ~/myfiles/store/startrek/@
$ cp the_return_of_the_jedi.avi ~/myfiles/store/starwars/@
Найдите свои файлы по тегам
Составьте свой поисковый запрос, выбрав столько тегов, сколько пожелаете. Вы даже можете объединить результаты более чем одного запроса, поместив между ними знак + /, как в startrek / + / starwars /, который объединяет файлы с тегом startrek с файлами с тегами starwars.
$ ls ~/myfiles/store/startrek/@
first_contact.avi
$ ls ~/myfiles/store/startrek/+/starwars/@
first_contact.avi
the_return_of_the_jedi.avi
Активировать отношения между тегами
$ 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!
Тагсист понимает несколько отношений:
- включает в себя: Если A включает B, любой файл, помеченный как B, может быть автоматически найден внутри A.
- исключает: если A исключает B, любой файл, помеченный как B, не может быть найден внутри A, даже если он помечен как A.
- is_equivalent: если A эквивалентно B, то все файлы в A доступны в B и наоборот.
И это еще не все!
Отметить целые каталоги
$ 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 ... ]
С Tagsistant вы можете пометить целые каталоги. Сам каталог будет помечен, а не файлы внутри, сохраняя место в теге db.
Используйте тройные теги
$ 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/@
Тройные теги - это расширенные теги, образованные пространством имен (оканчивающимся двоеточием), которое идентифицирует интересующую область тега, ключ, который определяет тег, оператор (например, равенство, gt больше чем, lt меньше чем и inc для включает в себя), и, наконец, значение, которое количественно определяет тег.
Это кажется мне наиболее последовательным и элегантным подходом для маркировки файлов в Linux. Он существует уже более 10 лет, так что это зрелое решение, без риска скоро исчезнуть.