Tagsistant is a tag-based filesystem for Linux that turns directories into tags and search your files for you.
$ tagsistant ~/myfiles $
Just tell Tagsistant the name of the directory you want to use, for example myfiles/ in your home. This directory is now a special place with custom rules that help you mange your files.
$ mkdir ~/myfiles/tags/startrek $ mkdir ~/myfiles/tags/starwars $ mkdir ~/myfiles/tags/scifi
Think to directories under tags/ as white stickers you write something on top of. Create as many tags as you need, ready to mark your files.
$ cp first_contact.avi ~/myfiles/store/startrek/@ $ cp the_return_of_the_jedi.avi ~/myfiles/store/starwars/@`
After creating a tag in tags/, it will be available in store/. Copy your files inside it: that’s how you tag files. The @ marks the end of the tag list and it’s required.
$ ls ~/myfiles/store/startrek/@ first_contact.avi $ ls ~/myfiles/store/startrek/+/starwars/@ first_contact.avi the_return_of_the_jedi.avi
Compose your search query by choosing as many tags you desire. You can even combine the results of more than one query by placing a +/ in between, like in startrek/+/starwars/ which merges the files tagged startrek with the files tagged starwars.
$ 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 understands several relations:
$ 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 ... ]
With Tagsistant you can tag entire directories. The directory itself will be tagged, not the files inside, saving space in the tag 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/@`
Triple tags are advanced tags formed by a namespace (terminated by a colon) which identifies the domain of interest of the tag, a key which qualifies the tag, an operator (eq for equality, gt for greater than, lt for less than and inc for includes), and finally a value which quantifies the tag.
Tagsistant can be expanded by third party plugins, able to tag specific MIME types of files. Current distribution includes MP3, OGG, HTML, XML, JPEG, PNG, PDF, and GIF plugins. In addition, the tp_filename_rx plugin can detect tags from file names.
If you copy the same file twice, Tagsistant will notice this and delete the second copy, adding its tag set to the first copy. Never mind if you already copied a file inside, Tagsistant is smart enough.
The archive/ directory lets you access all your files and directories directly without any query. Or if you want to get your whole collection, just ask for store/ALL/@/.
The export/ directory offers an easy way to backup your data, preserving the tagging.
Enable the .Trash special tag to keep your files after deleting them. You can recover files from there in case of accidental elimination.
If you perform a query very often, place it in a bookmark inside the alias/ directory. You can than refer to the alias as store/=myalias/@.