Man Linux: Main Page and Category List


       digitaglinktree  -  Export  tag  structure  of photos in digikam to the



       -l taglinkdir | -A archivedir

       -d database

       [-r rootdir]



       digitaglinktree will create a linktree for  all  photos  in  a  digikam
       database that have tags set on them. Tags (like eg. "family", "events",
       ...)  are used in digikam to create virtual folders  containing  images
       that all have one or more tags assigned.  Please note: Photos that have
       no tags at all assigned  are  silently  ignored  by  this  script.  The
       program  will  not modify or even touch your original photos managed by

       The script can be used in two ways: If you call  it  using  Option   -l
       taglinkdir   the  script  will  create  the  user  specified  directory
       taglinkdir and inside this directory it will create sub directories for
       digikam  tags   set  on the photos. Inside these subdirectories it will
       finally  place symbolic or hard links  (see -H) to  photos  having  the
       tags  in question.  As a result you will see the tags of your photos as
       folders and in these folders you  will  find  links  to  your  original

       In  this  way  you can access the collection of all images that share a
       certain tag by changing directory to the  folder  with  the  tags  name
       created  by  this  script.   This allows you e.g. to run JAlbum a photo
       album software that needs to find the pictures to be  put  into  a  web
       album  in  the filesystem because JAlbum cannot access digikams virtual
       folders directly.

       The second way of calling this script is the so called archive-mode  by
       setting option  -A archiveDir.

       Archive  mode  is  thought for people who want to archive tagged photos
       independently of digikams root  directories  and  the  photos  therein.
       This  way  you can put your photos and their tag structure in eg. a tar
       archive and send it  to a friend, who can look at the photos via  their
       tag  structure.  In this mode the script creates the directory given as
       parameter to -A and in this  directory  two  more  subdirectories.  One
       named  Photos  and  a second named Tags.  The Photos directory contains
       hard links to your original photos, and the Tags directory  contains  a
       subdirectory  for  each  Tag  used  by  any of your photos. Inside this
       subdirectory there are links (either symbolic or  hard  links)  to  the
       files  in  the  Photos directory. This way the archive  directory needs
       nearly no additional space on your harddisk and  you  have  an  archive
       that   allows  you  or  a  friend  to  easily  look  at  the photos tag

       Another benefit from using this script is  that  you  have  kind  of  a
       backup  of  your  tag  settings  for  all of your photos. The backup is
       simply the directory structure containing links to the original  images
       that wear the tags.  This could become important if for whatever reason
       the digikam.db file gets corrupted or even lost.


        -l taglinkdir
              Parameter  taglinkdir denotes  a  directory  in  which  the  tag
              structure  of all your photos stored in rootdir will be exported
              to by creating subdirectories for each tag and placing  symbolic
              links  in  these subdirectories that point to the original photo
              wearing  the  tags.  If  calling  the  script  with  option   -l
              taglinkDir you also have to  specify options -r  rootdir as well
              as -d database.

        -A archivedirectory
              archivedirectory denotes a directory into which the script  will
              export  the  photos   and their tag structure. -A has to be used
              together with option  -r  rootdir if  using  digikam  version  <
              0.10,  as  well  as  -d database else the script will terminate.
              Inside the archive  directory the script will  create  a  Photos
              and  a  Tags  directory.  It  will put hard links in the  Photos
              directory  that point to your original  photos.  By  using  hard
              links  you  are  independent   of  changes  in your digikam root
              directory  but  on  the  other  hand  you  are  limited  to  one
              filesystem.   So  the  directory  given  by  -r  rootdir and the
              directory specified for -A archivedir have to be  one  the  same
              filesystem.  If  using  digikam  in  version  >= 0.10 you cannot
              specify -r rootdir . Instead the root paths of  all  albums  are
              taken   from  digikams  database  directly.  However  still  the
              requirement holds,  that  archivedir  has  to  be  on  the  same
              filesystem  like  all the root directories containing photos you
              defined in digikam.  If one of digikams root directories  is  on
              another  filesystem  this  one  will  not  be  processed,  since
              hardlinking the photos inside the  Photos  directory  would  not
              work  in this case!  The Tags subdirectory will contain links to
              the files in the Photos directory. This way you have one archive
              directory  that  is  completely  self contained. You can tar it,
              send it to a friend or  just put it somewhere  for  archivel  or
              backup purposes. Usually only those photos will be archived that
              have a digikam tag set on them. By using option -C  however  you
              can perform a complete archive. See -C for more infos.

        -d database
              database is the complete path including the filename to digikams
              photo database which usually  can  be  found  in  digikams  root
              directory. The files name  is usually digikam.db .

        -r rootdir
              rootdir  denotes  the digikam base directory containing all your
              photos if you are using digikam in a version before 0.10. If you
              are using digikam 0.10 or newer you must not use this option. If
              you do it anyway you will see a hint that the option given  will
              be  ignored  because digikams version 0.10 database contains the
              root directories of all albums defined in digikam.

        -C    When the script is called with option -A archivedir  only  those
              photos  will  be  archived  (by  placing  links)  in  the Photos
              subdirectory of archivedir that have at least  one  digikam  tag
              set.  By  setting  option  -C  all  photos  will be  archived to
              archivedir no matter if they have a tag set or not.  Note:  This
              only changes the contents of the Photos  subdirectory not of the
              Tags subdirectory in the archivedir directory.

        -a    By default the script will try to create relative symbolic links
              from  the  directory   taglinkdir  set by option -l to the photo
              files under rootdir given by option -r. Using this  option  will
              result  in   absolute  symbolic  links beeing created instead of
              relative ones.

        -H    By default the script will create soft (symbolic) links from the
              Tag-Tree to the photos. By setting option -H the script will use
              hard links instead. Please note that  hard  links  can  only  be
              created  inside  one filesystem. So your photos and the Tag tree
              have to be one the same  filesystem.  If  not  you  will  see  a
              warning about this problem and the script will not run.

        -f    In  digikam  photos  can  have  hierachical tags (tags that have
              subtags). In this case digitaglinktree would by  default  add  a
              directory for the tag and a subdirectory for each of the subtags
              of this tag. By setting  -f  a subtag is treated like a  regular
              tag  just  as  its parent tag so digitaglinktree will create all
              subdirectories  for  tags  and  subtags  at   the   same   level
              independent of the tag - subtag hierarchy.

        -v    Prints the scripts version number and exits.


       By  default  this  script  will run with all photo databases created by
       digikam version 0.10 as well as older version like 0.9 and 0.8. If  you
       still  have digikam version 0.7 then you have to reconfigure the script

       You have to reconfigure the script by setting the path  to  the  sqlite
       binary  that  is  used  by  the  script  to  query the digikam database
       digikam.db. Since very old digikam version use sqlite in version 2, but
       later  digikam  versions need sqlite version 3 you have to take care to
       install the correct version of sqlite for the installed digikam version
       and  to  set  the  path to the correct sqlite executable in the scripts



       for digikam version 0.8x and 0.9x and 0.10x


       for digikam version 0.7x.


       A call to digitaglinktree is shown below:

       digiTagLinktree         -l        /home/user/tags                    -d

       In  this example we assume that you are running digikam version 0.10 or
       higher so that no option -r was used to specify  the  photo  root  dir.
       Instead  this  information  will automatically be fetched from digikams

       In case you want to run the script  on  a  digikam  database  that  was
       created by digikam version 0.9 or earlier you have to use -r to specify
       the root directory where you keep all your photos that are  managed  by

       digiTagLinktree  -r /home/user/photos -l /home/user/tags             -d

       In this example digikams photo root denoted by -r is /home/user/photos.

       Option  -l /home/user/tags tells the script that all the subdirectories
       and symbolic links will be placed in the directory /home/user/tags. The
       folder  was  chosen  so  that  the tags-directory is not under digikams
       photo root. You may put the tags folder inside digikams  photoroot  but
       this  is not the preferred method.  Because the link directory contains
       only links this tag structure does hardly need any additional space  on
       your harddisk.


       digitaglinktree   was  written  by  Rainer  Krienke  <krienke  at  uni->

                                 16 Aug 2006                digitaglinktree(1)