Найкращим способом здається тегування файлової системи тегів .
З домашньої сторінки:
Tagsistant - файлова система на основі тегів для Linux, яка перетворює каталоги в теги та шукає ваші файли для вас.
Гора Теґагіст
Просто скажіть 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 /, який об'єднує файли, позначені стартеком, з файлами зі зоряними зірками.
$ 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!
Tagsistant розуміє кілька відносин:
- включає: Якщо A включає B, будь-який файл, позначений як B, може бути автоматично знайдений всередині A.
- виключає: Якщо A виключає B, жоден файл із тегом B не може бути знайдений всередині 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 для менше та вкл для включає) і, нарешті, значення, яке кількісно визначає тег.
Мені це здається найбільш послідовним і елегантним підходом до тегування файлів в Linux. Це вже більше 10 років, тож це також зріле рішення, без ризику незабаром зникнути.