| git-annex-metadata(1) | General Commands Manual | git-annex-metadata(1) |
نام (NAME)
git-annex-metadata - تنظیم یا بررسی فرادادههای فایلهای ضمیمهشده
خلاصه دستور (SYNOPSIS)
git annex metadata [path ...]
توضیحات (DESCRIPTION)
محتوای یک فایل ضمیمهشده (annexed) میتواند هر تعداد فیلد فراداده (metadata) برای توصیف آن به خود اختصاص دهد. هر فیلد فراداده نیز به نوبه خود میتواند هر تعداد مقدار داشته باشد.
از این دستور میتوان برای تنظیم فرادادهها، یا نمایش فرادادههای فعلی تنظیمشده استفاده کرد.
هنگامی که این دستور بدون هیچ پارامتر -s یا -t اجرا شود، فرادادههای فعلی را نمایش میدهد.
هر فیلد فراداده دارای یک فراداده اختصاصی بهصورت «field-lastchanged» است که تاریخ آخرین تغییر آن فیلد را در خود نگه میدارد. برخلاف سایر فرادادهها، این مقدار را نمیتوان مستقیماً با این دستور ویرایش کرد؛ بلکه بهطور خودکار بهروزرسانی میشود.
توجه داشته باشید که فراداده به کلید git-annex متناظر با محتوای فایل متصل میشود، نه به یک نام فایل خاص در یک شاخه مشخص گیت. تمام فایلهایی که کلید یکسانی دارند، در این فراداده که در شاخه git-annex ذخیره میشود مشترک هستند. در صورتی که فایلی تغییر داده شود، فراداده نسخه قبلی هنگام اضافه شدن فایل تغییریافته توسط git-annex به کلید جدید کپی خواهد شد.
گزینهها (OPTIONS)
- -g field / --get field
- دریافت مقدار(های) یک فیلد تکی.
- مقادیر بهصورت یک مقدار در هر خط، بدون هیچ خروجی دیگری چاپ میشوند؛ بنابراین برای استفاده در اسکریپتها مناسب است.
- -s field=value / --set field=value
- تنظیم مقدار یک فیلد و حذف تمامی مقادیر پیشین آن.
- -s field+=value / --set field+=value
- افزودن یک مقدار اضافی و در عین حال حفظ تمامی مقادیر قبلی.
- -s field?=value / --set field?=value
- تنظیم یک مقدار، اما تنها در صورتی که آن فیلد از قبل دارای مقداری نباشد.
- -s field-=value / --set field-=value
- حذف یک مقدار از یک فیلد، در حالی که سایر مقادیر تنظیمشده برای آن فیلد دستنخورده باقی میمانند.
- -r field / --remove field
- حذف تمامی مقادیر فعلی آن فیلد.
- -t tag / --tag tag
- تنظیم یک برچسب (tag). توجه داشته باشید که یک برچسب صرفاً مقداری از فیلد «tag» است.
- -u tag / --unset tag
- حذف یا لغو تنظیم یک برچسب.
- --remove-all
- حذف تمامی فرادادهها از فایلهای مشخصشده.
- هنگامی که فایلی تغییر یافته و نسخه جدید آن اضافه میشود، git-annex فرادادهها را از نسخه قدیمی فایل کپی میکند. در مواقعی که نمیخواهید آن فرادادهها کپی شوند، میتوانید از این گزینه برای حذف آنها استفاده کنید.
- --force
- بهطور پیشفرض، git annex metadata از تنظیم بازگشتی فرادادهها در تمام فایلهای یک دایرکتوری خودداری میکند. این گزینه امکان چنین تنظیم بازگشتی را فراهم میسازد.
- گزینههای تطبیق (matching options)
- میتوان از git-annex-matching-options(1) برای کنترل مواردی که عملیات روی آنها انجام میشود استفاده کرد.
- --all -A
- به جای یک فایل، برای دریافت یا تنظیم فرادادهها روی تمامی کلیدهای شناختهشده تعیین میشود.
- --branch=ref
- به جای یک فایل، برای دریافت یا تنظیم فرادادهها روی تمامی فایلهای موجود در شاخه یا درختواره (treeish) مشخصشده تعیین میشود.
- --unused
- به جای یک فایل، برای دریافت یا تنظیم فرادادهها روی فایلهای یافتشده در آخرین اجرای git annex unused تعیین میشود.
- --key=keyname
- به جای یک فایل، برای دریافت یا تنظیم فرادادههای کلید مشخصشده تعیین میشود.
- --json
- فعالسازی خروجی (و ورودی) JSON. هر خط یک شیء JSON است.
- قالب اشیاء JSON در نسخه 6.20160726 از git-annex تغییر کرد.
- مثال قالب جدید:
-
{"command":"metadata","file":"foo","key":"...","fields":{"author":["bar"],...},"note":"...","success":true} - مثال قالب قدیمی که فاقد شیء درونی fields است:
-
{"command":"metadata","file":"foo","key":"...","author":["bar"],...,"note":"...","success":true} - --json-error-messages
- پیامهایی که بهطور معمول در خروجی استاندارد خطا (stderr) نمایش داده میشدند، در عوض درون JSON گنجانده میشوند.
- --batch
- حالت دستهای (batch mode) را فعال میکند، که میتواند برای دریافت، ذخیره و لغو تنظیم فرادادهها برای چندین فایل یا کلید استفاده شود.
- حالت دستهای در حال حاضر فقط از ورودی JSON پشتیبانی میکند؛ بنابراین، باید --json را به همراه --batch فعال کنید.
- در حالت دستهای، git-annex خطوطی حاوی اشیاء JSON را از ورودی استاندارد (stdin) میخواند. این دستور در پاسخ به هر فایل ضمیمهشده ورودی، یک شیء JSON در خروجی ارسال میکند. (اما اگر فایل یک فایل ضمیمهشده نباشد، یک خط خالی چاپ خواهد شد.)
- قالب JSON ارسالی به git-annex میتواند مشابه همان JSON خروجی آن یا یک نسخه سادهشده باشد. تنها فیلد «file» (یا «key») واقعاً ضروری است.
- بهعنوان مثال، برای دریافت فراداده فعلی فایل foo:
-
{"file":"foo"} - برای دریافت فراداده فعلی کلید k:
-
{"key":"k"} - هر فیلد فرادادهای که درون شیء JSON گنجانده شود ذخیره خواهد شد و جایگزین هر مقداری میشود که آن فیلدها پیش از این داشتهاند. برای لغو تنظیم یک فیلد، آن را با یک لیست خالی از مقادیر درج کنید.
- برای تغییر نویسنده (author) فایل foo به bar:
-
{"file":"foo","fields":{"author":["bar"]}} - برای حذف نویسنده فایل foo:
-
{"file":"foo","fields":{"author":[]}} - همچنین میتوان از git-annex-common-options(1) نیز استفاده کرد.
مثالها (EXAMPLES)
برای تنظیم چند برچسب (tag) روی یک فایل و همچنین نویسنده آن:
git annex metadata annexscreencast.ogv -t video -t screencast -s author+=Alice
همچنین ببینید (SEE ALSO)
نویسنده (AUTHOR)
Joey Hess <id@joeyh.name>