digitaglinktree(1) Linux User's Manual digitaglinktree(1)

digitaglinktree - صدور ساختار برچسب‌های عکس‌ها در digikam به سیستم‌فایل

digitaglinktree

-l taglinkdir | -A archivedir

-d database

[-r rootdir]

[-H|-f|-a|-v|-C]

digitaglinktree یک ساختار درختی از پیوندها (linktree) برای تمام عکس‌های موجود در پایگاه‌دادهٔ digikam که دارای برچسب هستند ایجاد می‌کند. برچسب‌ها (مانند «family»، «events» و...) در digikam برای ایجاد پوشه‌های مجازی حاوی تصاویری استفاده می‌شوند که یک یا چند برچسب به آن‌ها اختصاص یافته است. لطفاً توجه داشته باشید: عکس‌هایی که هیچ برچسبی به آن‌ها اختصاص داده نشده است، بدون هیچ پیامی توسط این اسکریپت نادیده گرفته می‌شوند. این برنامه عکس‌های اصلی شما را که توسط digikam مدیریت می‌شوند، به هیچ وجه تغییر نداده و دستکاری نخواهد کرد.

این اسکریپت را می‌توان به دو روش استفاده کرد: اگر آن را با استفاده از گزینهٔ -l taglinkdir فراخوانی کنید، اسکریپت دایرکتوری مشخص‌شده توسط کاربر (taglinkdir) را ایجاد می‌کند و درون این دایرکتوری، زیردایرکتوری‌هایی برای برچسب‌های digikam تنظیم‌شده روی عکس‌ها می‌سازد. در نهایت درون این زیردایرکتوری‌ها، پیوندهای نمادین یا سخت (گزینهٔ -H را ببینید) به عکس‌های دارای برچسب‌های مربوطه قرار می‌دهد. در نتیجه، برچسب‌های عکس‌های خود را به صورت پوشه خواهید دید و در این پوشه‌ها پیوندهایی به عکس‌های اصلی خود خواهید یافت.

از این طریق می‌توانید با رفتن به پوشه‌ای که با نام آن برچسب توسط این اسکریپت ایجاد شده است، به مجموعهٔ تمام تصاویری که دارای برچسب مشخصی هستند دسترسی پیدا کنید. این کار مثلاً به شما امکان می‌دهد نرم‌افزار آلبوم عکس JAlbum را اجرا کنید؛ برنامه‌ای که برای قرار دادن تصاویر در یک آلبوم وب، نیاز دارد آن‌ها را در سیستم‌فایل پیدا کند، زیرا JAlbum نمی‌تواند مستقیماً به پوشه‌های مجازی digikam دسترسی داشته باشد.

روش دوم برای فراخوانی این اسکریپت، حالت موسوم به بایگانی (archive-mode) با تنظیم گزینهٔ -A archiveDir است.

حالت بایگانی برای افرادی در نظر گرفته شده است که می‌خواهند عکس‌های برچسب‌گذاری‌شده را مستقل از دایرکتوری‌های ریشهٔ digikam و عکس‌های درون آن‌ها بایگانی کنند. به این ترتیب می‌توانید عکس‌ها و ساختار برچسب‌های آن‌ها را مثلاً در یک بایگانی tar قرار داده و برای دوستی ارسال کنید تا او بتواند عکس‌ها را از طریق ساختار برچسب‌هایشان ببیند. در این حالت، اسکریپت دایرکتوری ارائه‌شده به عنوان پارامتر به -A را ایجاد کرده و درون آن دو زیردایرکتوری دیگر می‌سازد؛ یکی با نام Photos و دیگری با نام Tags. دایرکتوری Photos حاوی پیوندهای سخت به عکس‌های اصلی شماست و دایرکتوری Tags شامل یک زیردایرکتوری برای هر برچسب استفاده‌شده در هر یک از عکس‌های شما خواهد بود. درون این زیردایرکتوری، پیوندهایی (خواه نمادین یا سخت) به فایل‌های موجود در دایرکتوری Photos قرار دارد. بدین ترتیب دایرکتوری بایگانی تقریباً هیچ فضای اضافی در دیسک سخت شما اشغال نمی‌کند و آرشیوی در اختیارتان می‌گذارد که به شما یا دوستتان اجازه می‌دهد به راحتی ساختار برچسب‌های عکس‌ها را بررسی کنید.

مزیت دیگر استفاده از این اسکریپت این است که نوعی پشتیبان از تنظیمات برچسب‌های تمام عکس‌های خود خواهید داشت. این پشتیبان صرفاً همان ساختار دایرکتوری حاوی پیوندها به تصاویر اصلی دارای برچسب است. این موضوع می‌تواند زمانی مهم شود که به هر دلیلی فایل digikam.db خراب یا گم شود.

پارامتر taglinkdir دایرکتوری‌ای را نشان می‌دهد که ساختار برچسب‌های تمام عکس‌های ذخیره‌شده در rootdir، با ایجاد زیردایرکتوری برای هر برچسب و قرار دادن پیوندهای نمادین درون این زیردایرکتوری‌ها که به عکس اصلی دارای برچسب اشاره دارند، به آن صادر خواهد شد. اگر اسکریپت را با گزینهٔ -l taglinkDir فراخوانی کنید، باید گزینه‌های -r rootdir و همچنین -d database را نیز مشخص نمایید.
archivedirectory دایرکتوری‌ای را نشان می‌دهد که اسکریپت عکس‌ها و ساختار برچسب‌های آن‌ها را به آن صادر خواهد کرد. در صورت استفاده از نسخهٔ کمتر از 0.10 در digikam، گزینهٔ -A باید همراه با گزینهٔ -r rootdir و همچنین -d database به کار رود، در غیر این صورت اسکریپت متوقف خواهد شد. درون دایرکتوری بایگانی، اسکریپت دو دایرکتوری Photos و Tags ایجاد خواهد کرد. این برنامه پیوندهای سختی را در دایرکتوری Photos قرار می‌دهد که به عکس‌های اصلی شما اشاره می‌کنند. با استفاده از پیوندهای سخت، شما مستقل از تغییرات در دایرکتوری ریشهٔ digikam خواهید بود، اما از سوی دیگر محدود به یک سیستم‌فایل می‌شوید. بنابراین دایرکتوری ارائه‌شده توسط -r rootdir و دایرکتوری مشخص‌شده برای -A archivedir باید روی یک سیستم‌فایل یکسان باشند. اگر از digikam نسخهٔ 0.10 یا بالاتر استفاده می‌کنید، نمی‌توانید -r rootdir را مشخص کنید؛ در عوض، مسیرهای ریشهٔ تمام آلبوم‌ها مستقیماً از پایگاه‌دادهٔ digikam گرفته می‌شوند. با این حال، همچنان این الزام برقرار است که archivedir باید روی همان سیستم‌فایلی باشد که تمام دایرکتوری‌های ریشهٔ حاوی عکس‌های تعریف‌شده در digikam روی آن قرار دارند. اگر یکی از دایرکتوری‌های ریشهٔ digikam روی سیستم‌فایل دیگری باشد، آن دایرکتوری پردازش نخواهد شد، زیرا ایجاد پیوند سخت برای عکس‌ها در دایرکتوری Photos در این حالت کار نخواهد کرد! زیردایرکتوری Tags حاوی پیوندهایی به فایل‌های موجود در دایرکتوری Photos خواهد بود. به این ترتیب، یک دایرکتوری بایگانی کاملاً خودکفا خواهید داشت. می‌توانید آن را tar کنید، برای یک دوست بفرستید یا فقط برای اهداف بایگانی یا پشتیبان‌گیری در جایی نگهداری نمایید. معمولاً فقط عکس‌هایی بایگانی می‌شوند که برچسب digikam داشته باشند. با این حال با استفاده از گزینهٔ -C می‌توانید یک بایگانی کامل انجام دهید. برای اطلاعات بیشتر -C را ببینید.
database مسیر کامل شامل نام فایل به پایگاه‌دادهٔ عکس digikam است که معمولاً در دایرکتوری ریشهٔ digikam یافت می‌شود. نام فایل معمولاً digikam.db است.
اگر از نسخهٔ پیش از 0.10 برنامهٔ digikam استفاده می‌کنید، rootdir دایرکتوری پایهٔ digikam حاوی تمام عکس‌های شما را مشخص می‌کند. اگر از digikam نسخهٔ 0.10 یا جدیدتر استفاده می‌کنید، نباید از این گزینه استفاده کنید. اگر با وجود این از آن استفاده کنید، پیامی را مشاهده خواهید کرد مبنی بر اینکه گزینهٔ ارائه‌شده نادیده گرفته می‌شود، زیرا پایگاه‌دادهٔ نسخهٔ 0.10 برنامهٔ digikam شامل دایرکتوری‌های ریشهٔ تمام آلبوم‌های تعریف‌شده در digikam است.
هنگامی که اسکریپت با گزینهٔ -A archivedir فراخوانی می‌شود، تنها عکس‌هایی در زیردایرکتوری Photos در archivedir بایگانی می‌شوند (با قرار دادن پیوند) که حداقل یک برچسب digikam داشته باشند. با تنظیم گزینهٔ -C، تمام عکس‌ها در archivedir بایگانی خواهند شد، فارغ از اینکه برچسبی روی آن‌ها تنظیم شده باشد یا خیر. نکته: این کار تنها محتوای زیردایرکتوری Photos را تغییر می‌دهد، نه زیردایرکتوری Tags در دایرکتوری archivedir را.
به طور پیش‌فرض، اسکریپت تلاش می‌کند از دایرکتوری taglinkdir تنظیم‌شده با گزینهٔ -l به فایل‌های عکس زیر rootdir مشخص‌شده با گزینهٔ -r پیوندهای نمادین نسبی ایجاد کند. استفاده از این گزینه منجر به ایجاد پیوندهای نمادین مطلق به جای پیوندهای نسبی خواهد شد.
به طور پیش‌فرض، اسکریپت از درخت برچسب به عکس‌ها پیوندهای نرم (نمادین) ایجاد می‌کند. با تنظیم گزینهٔ -H، اسکریپت در عوض از پیوندهای سخت استفاده خواهد کرد. لطفاً توجه داشته باشید که پیوندهای سخت فقط در یک سیستم‌فایل یکسان ایجاد می‌شوند؛ بنابراین عکس‌ها و درخت برچسب شما باید روی یک سیستم‌فایل باشند. در غیر این صورت، هشداری دربارهٔ این مشکل مشاهده خواهید کرد و اسکریپت اجرا نخواهد شد.
در digikam، عکس‌ها می‌توانند برچسب‌های سلسله‌مراتبی داشته باشند (برچسب‌هایی که دارای زیربرچسب هستند). در این حالت، digitaglinktree به طور پیش‌فرض یک دایرکتوری برای برچسب و یک زیردایرکتوری برای هر یک از زیربرچسب‌های آن برچسب اضافه می‌کند. با تنظیم -f، با یک زیربرچسب درست مانند یک برچسب معمولی همانند برچسب والد آن رفتار می‌شود؛ بنابراین digitaglinktree تمام زیردایرکتوری‌ها را برای برچسب‌ها و زیربرچسب‌ها بدون توجه به سلسله‌مراتب برچسب - زیربرچسب، در یک سطح ایجاد خواهد کرد.
ایجاد دایرکتوری سال در زیر هر دایرکتوری برچسب. اطلاعات سال از «Date taken» در پایگاه‌داده گرفته می‌شود.
tag1,..,tagn تنها تصاویری را شامل می‌شود که برچسب‌های موجود در فهرست را دارند. از کاما به عنوان جداکنندهٔ برچسب‌ها استفاده کنید. مقدار پیش‌فرض «none» است. اگر واقعاً مایلید تمام برچسب‌ها را به یکباره لحاظ کنید، از «all» استفاده نمایید. بهتر است ابتدا فهرستی با چند برچسب را آزمایش کنید تا ببینید تکمیل آن چقدر طول می‌کشد.
tag1,..,tagn تصاویری با برچسب‌های موجود در فهرست را مستثنی می‌کند. از کاما به عنوان جداکنندهٔ برچسب‌ها استفاده کنید. مقدار پیش‌فرض «none» است.
level_number تعداد سطوح دایرکتوری را مشخص می‌کند. -M مشخص می‌کند که به جای پیروی از سلسله‌مراتب معمول برچسب‌ها، سلسله‌مراتبی ترکیبی از برچسب‌های مختلف ایجاد شود و نه فقط درون یک سلسله‌مراتب برچسب (برای مثال ترکیب برچسب‌های Places و People). باید برچسب‌هایی را که می‌خواهید اضافه شوند با استفاده از گزینهٔ -i مشخص کنید (بالا را ببینید). بسته به سطح ارائه‌شده و تعداد برچسب‌هایی که گنجانده‌اید و تعداد عکس‌هایی که با digikam مدیریت می‌کنید، این گزینه ممکن است زمان قابل توجهی (احتمالاً بیش از یک ساعت) برای تکمیل نیاز داشته باشد! به نظر می‌رسد level_number با مقدار «5» حداکثر سطح منطقی برای شروع در این حالت باشد. گزینه‌های -A ،-C ،-a ،-H و -f با این گزینه آزمایش نشده‌اند!
حالت پرگو (اطلاعات دقیق).
شمارهٔ نسخهٔ اسکریپت را چاپ کرده و خارج می‌شود.

به طور پیش‌فرض، این اسکریپت با تمام پایگاه‌داده‌های عکسی که توسط digikam نسخهٔ 0.10 و همچنین نسخه‌های قدیمی‌تر مانند 0.9 و 0.8 ایجاد شده‌اند کار خواهد کرد. اگر هنوز از digikam نسخهٔ 0.7 استفاده می‌کنید، باید خود اسکریپت را بازپیکربندی نمایید.

باید اسکریپت را با تنظیم مسیر فایل اجرایی sqlite که توسط اسکریپت برای پرس‌وجوی پایگاه‌دادهٔ digikam (digikam.db) استفاده می‌شود، بازپیکربندی کنید. از آنجا که نسخه‌های بسیار قدیمی digikam از نسخهٔ 2 برنامهٔ sqlite استفاده می‌کنند، اما نسخه‌های بعدی digikam به نسخهٔ 3 از sqlite نیاز دارند، باید دقت داشته باشید که نسخهٔ مناسب sqlite را برای نسخهٔ نصب‌شدهٔ digikam نصب کرده و مسیر فایل اجرایی درست sqlite را در ابتدای اسکریپت تنظیم کنید:

مقدار زیر را انتخاب کنید:

$SQLITE="/usr/bin/sqlite3";

برای digikam نسخه‌های 0.8x و 0.9x و 0.10x

$SQLITE="/usr/bin/sqlite";

برای digikam نسخهٔ 0.7x.

یک نمونه فراخوانی digitaglinktree در زیر نشان داده شده است:

digiTagLinktree -l /home/user/tags
-d /home/user/photos/digikam.db

در این مثال فرض می‌کنیم که شما نسخهٔ 0.10 یا بالاتر digikam را اجرا می‌کنید، بنابراین برای مشخص کردن دایرکتوری ریشهٔ عکس‌ها از گزینهٔ -r استفاده نشده است. در عوض، این اطلاعات به طور خودکار از پایگاه‌دادهٔ digikam واکشی می‌شود.

در صورتی که می‌خواهید اسکریپت را روی یک پایگاه‌دادهٔ digikam اجرا کنید که با نسخهٔ 0.9 یا قدیمی‌ترِ digikam ساخته شده است، باید از -r برای مشخص کردن دایرکتوری ریشه‌ای که تمام عکس‌های مدیریت‌شده با digikam را در آن نگه می‌دارید استفاده کنید:

digiTagLinktree -l /home/user/tags
-d /home/user/photos/digikam.db

در این مثال، ریشهٔ عکس‌های digikam که با -r مشخص شده، /home/user/photos است.

گزینهٔ -l /home/user/tags به اسکریپت می‌گوید که تمام زیردایرکتوری‌ها و پیوندهای نمادین در دایرکتوری /home/user/tags قرار خواهند گرفت. این پوشه طوری انتخاب شده است که دایرکتوری برچسب‌ها زیر ریشهٔ عکس‌های digikam قرار نگیرد. ممکن است پوشهٔ برچسب‌ها را درون ریشهٔ عکس‌های digikam قرار دهید، اما این روش ارجح نیست. از آنجا که دایرکتوری پیوندها تنها حاوی پیوند است، این ساختار برچسب تقریباً به هیچ فضای اضافی روی دیسک سخت شما نیاز ندارد.

digiTagLinktree -r /home/user/photos -l /home/user/tags -d /home/user/photos/digikam.db
-i People,Place
-M 2
-Y

در این مثال، اگر تصویری با برچسب‌های People/me و Place/home از سال ۱۹۷۰ داشته باشید، دایرکتوری‌های زیر را ایجاد خواهد کرد (پیوند به تصویر زیر دایرکتوری _all):

/home/user/tags/Date/1970/_all/

/home/user/tags/Date/1970/People/me/_all/

/home/user/tags/Date/1970/People/me/Place/home/_all/

/home/user/tags/Date/1970/Place/home/_all/

/home/user/tags/Date/1970/Place/home/People/me/_all/

مشابه همین با شروع از ... Place/ مشابه همین با شروع از ... People/

digitaglinktree توسط Rainer Krienke <krienke at uni-koblenz.de> نوشته شده است.

16 Aug 2006