So far we have seen files being tagged by Tagsistant. But files are not the only object type Tagsistant can manage. In fact Tagsistant can tag any kind of object: directories, named pipes, devices and symbolic links. To create them you can use traditional Linux commands (mkdir, mkfifo, mknod, ln) with a complete query like in:
$ mkdir ~/myfiles/store/startrek/@@/subtitles/
$ ln -s ~/Videos/encounter_at_farpoint.avi ~/myfiles/store/startrek/video/@/
Here we have a directory named subtitles tagged as startrek/ and a link to a video tagged as startrek/ and video/ too. Symbolic links are very useful to tag a huge amount of files or big sized files in a matter of seconds. Let's focus on the video encounter_at_farpoint.avi. It's a big file (about 600 megabytes). Using the copy way you tag it as startrek/. Some days after you want to add the video/ tag, so you copy it again:
$ cp ~/myfiles/store/startrek/@/encounter_at_farpoint.avi ~/myfiles/store/video/@
Here you have to wait for all the 600 megabytes to be copied in the new directory and then deduplicated, which costs to Tagsistant the computation of the SHA1 checksum of the file (in other words a long and useless task). If however you would have used symlinks the operation would have taken the fraction of a second:
$ ln -s ~/myfiles/startrek/@/encounter_at_farpoint ~/myfiles/store/startrek/@
$ ln -s ~/myfiles/startrek/@/encounter_at_farpoint ~/myfiles/store/video/@
Tagsistant deduplicates symlinks by comparing their pointer object, which is an instantaneous operation. This approach has another advantage: you don't put your original files inside Tagsistant. Don't misunderstand me: Tagsistant is a safe place for your files. But if you put your files inside it then you have to use it to access them. This way you can keep accessing your files in the traditional way and in the tag way at the same time!