| git-annex-matching-options(1) | General Commands Manual | git-annex-matching-options(1) |
نام (NAME)
git-annex-matching-options - تعیین مواردی که باید روی آنها عملیات انجام شود
توضیحات (DESCRIPTION)
بسیاری از دستورات git-annex از این گزینهها برای مشخص کردن فایلهایی که روی آنها عملیات انجام میدهند، پشتیبانی میکنند. برخی از این گزینهها همچنین میتوانند توسط دستورات برای مشخص کردن کلیدهایی که روی آنها عملیات انجام میشود، استفاده شوند.
با استفاده از این گزینهها میتوان عبارتهای پیچیده و دلخواهی ساخت؛ برای نمونه:
--include='*.mp3' --and -( --in=usbdrive --or --in=archive -)
مثال بالا باعث میشود git-annex تنها بر روی فایلهای mp3 که در هر یک از آن دو مخزن وجود دارند، عمل کند.
گزینهها (OPTIONS)
- --exclude=glob
- فایلهای منطبق با الگوی سراسری (glob pattern) را نادیده میگیرد. این الگو نسبت به دایرکتوری جاری سنجیده میشود؛ برای نمونه:
git annex get --exclude='*.mp3' --exclude='subdir/*'
- توجه داشته باشید که هنگام استفاده از --all یا --unused این گزینه هیچ چیزی را مطابقت نخواهد داد.
- --include=glob
- فایلهایی را که با الگوی سراسری (glob) مطابقت ندارند نادیده میگیرد. (مشابه با --not --exclude.) برای نمونه، جهت گنجاندن فقط فایلهای mp3 و ogg:
git annex get --include='*.mp3' --or --include='*.ogg'
- توجه داشته باشید که هنگام استفاده از --all یا --unused این گزینه مانع پردازش هیچ موردی نخواهد شد.
- --excludesamecontent=glob
- اگر فایل دیگری با همین محتوا وجود داشته باشد که نام آن با الگوی glob مطابقت دارد، فایل را نادیده میگیرد. این الگو نسبت به دایرکتوری جاری سنجیده میشود.
- برای نمونه، جهت حذف فایلها در دایرکتوری archive، به جز زمانی که همان محتوا توسط فایلی در دایرکتوری work استفاده شده است:
git annex drop archive/ --excludesamecontent='work/*'
- --includesamecontent=glob
- چنانچه فایل دیگری با همین محتوا که نامش با الگوی glob مطابقت دارد وجود نداشته باشد، فایل را نادیده میگیرد. (مشابه با --not --excludesamecontent)
- برای نمونه، اگر دایرکتوریهای inbox و outbox را دارید و میخواهید هر موردی در inbox را که محتوایی یکسان با چیزی در outbox دارد بیابید:
git annex find inbox --includesamecontent='outbox/*'
- --in=repository
- تنها زمانی مطابقت دارد که git-annex بر این باور باشد که محتوا در مخزن مورد نظر موجود است.
- مخزن باید با استفاده از نام یک ریموت پیکربندیشده، یا شناسهٔ یکتا (UUID) یا توضیحات یک مخزن مشخص شود. برای مخزن جاری، از «here» استفاده کنید.
- توجه داشته باشید که این گزینه مخازن راه دور (remotes) را بررسی نمیکند تا اطمینان یابد محتوا هنوز روی آنها وجود دارد یا خیر. با این حال، هنگام بررسی مخزن جاری، بررسی میکند که محتوا واقعاً در آن وجود داشته باشد.
- --in=repository@{date}
- تنها زمانی مطابقت دارد که محتوا در تاریخ مشخصشده در آن مخزن وجود داشته است.
- تاریخ با همان ساختار مستندشده در gitrevisions(7) مشخص میشود. توجه داشته باشید که این گزینه از reflog استفاده میکند، بنابراین تاریخهای بسیار قدیمی در گذشته قابل پرسوجو نیستند.
- برای نمونه، شاید لازم باشد دستور git annex drop . را برای آزادسازی موقت فضای دیسک اجرا کنید. روز بعد، میتوانید فایلهایی را که رها کردهاید با استفاده از دستور git annex get . --in=here@{yesterday} بازگردانید.
- --expected-present
- تنها زمانی مطابقت دارد که git-annex تصور کند محتوا در مخزن محلی موجود است.
- این گزینه شبیه به --in=here است، با این تفاوت که بررسی نمیکند محتوا واقعاً وجود فیزیکی دارد یا خیر. بنابراین میتوان از آن در شرایطی استفاده کرد که مشخص است اطلاعات ردیابی مکان قدیمی شدهاند.
- برای نمونه، اگر مخزنی از روی یک نسخهٔ پشتیبان که اشیای git-annex را شامل نمیشده در حال بازیابی است، میتوان از این گزینه برای بازگرداندن تمام فایلهایی که انتظار میرفت در آن باشند استفاده کرد:
git-annex get --expected-present
- --copies=number
- تنها زمانی مطابقت دارد که git-annex بر این باور باشد که به تعداد مشخصشده یا بیشتر نسخه از محتوا وجود دارد. توجه داشته باشید که ریموتها را برای تایید اینکه آیا نسخهها هنوز وجود دارند بررسی نمیکند.
- --copies=trustlevel:number
- تنها زمانی مطابقت دارد که git-annex بر این باور باشد که به تعداد مشخصشده نسخه بر روی ریموتهایی با سطح اعتماد مشخصشده وجود دارد؛ برای نمونه: --copies=trusted:2
- برای مطابقت با هر سطح اعتمادی برابر یا بالاتر از یک سطح معین، از '+trustlevel' استفاده کنید؛ برای نمونه: --copies=semitrusted+:2
- --copies=groupname:number
- تنها زمانی مطابقت دارد که git-annex تصور کند تعداد نسخههای مشخصشده روی ریموتهای عضو گروه مشخصشده وجود دارد؛ برای نمونه: --copies=archive:2
- --lackingcopies=number
- تنها زمانی مطابقت دارد که git-annex بر این باور باشد که به تعداد مشخصشده یا بیشتر نسخهٔ اضافی باید ایجاد شود تا تنظیمات numcopies ارضا گردند.
- --approxlackingcopies=number
- مشابه lackingcopies است، اما تنظیمات annex.numcopies در .gitattributes را بررسی نمیکند. این کار سرعت آن را به طور چشمگیری افزایش میدهد.
- --inbackend=name
- تنها زمانی مطابقت دارد که محتوا با استفاده از بکاند کلید-مقدار مشخصشده ذخیره شده باشد.
- --securehash
- تنها زمانی مطابقت دارد که محتوا با استفاده از یک تابع درهمسازی امن از نظر رمزنگاری (cryptographically secure) هش شده باشد.
- --inallgroup=groupname
- تنها زمانی مطابقت دارد که git-annex تصور کند محتوا در تمام مخازن موجود در گروه مشخصشده حاضر است.
- --onlyingroup=groupname
- تنها زمانی مطابقت دارد که git-annex بر این باور باشد که محتوا حداقل در یک مخزن عضو گروه مشخصشده وجود دارد، و در هیچیک از مخازنی که در آن گروه نیستند وجود ندارد.
- --smallerthan=size
- --largerthan=size
- تنها زمانی مطابقت دارد که اندازهٔ محتوا از اندازهٔ مشخصشده کوچکتر، یا بزرگتر باشد.
- اندازه را میتوان با هر یک از واحدهای متداول، مانند «0.5 gb» یا «100 KiloBytes» مشخص کرد.
- --metadata field=glob
- تنها زمانی مطابقت دارد که یک فیلد فراداده (metadata) پیوستشده با مقداری که با الگوی glob مطابقت دارد وجود داشته باشد. تطابق مقادیر فیلدهای فراداده بدون حساسیت به حروف کوچک و بزرگ انجام میشود.
- --metadata field<value / --metadata field>value
- --metadata field<=value / --metadata field>=value
- تنها زمانی مطابقت دارد که فیلد فرادادهای پیوستشده با مقداری به ترتیب کمتر یا بیشتر از مقدار مشخصشده وجود داشته باشد.
- هنگامی که هر دو مقدار عدد باشند، مقایسه به صورت عددی انجام میشود. زمانی که یکی از مقادیر عدد نباشد، مقایسه به صورت الفبایی (lexicographically) انجام میگیرد.
- (توجه داشته باشید که باید پارامتر دوم را داخل علامت نقلقول قرار دهید تا از تغییر مسیر خروجی توسط شل جلوگیری شود.)
- --url=glob
- زمانی مطابقت دارد که ثبت شده باشد محتوا در یک آدرس اینترنتی (URL) منطبق با الگوی glob قرار دارد.
- --want-get
- تنها زمانی مطابقت دارد که تنظیمات محتوای ترجیحی برای مخزن محلی تمایل به دریافت محتوا داشته باشند. توجه داشته باشید که این گزینه حتی زمانی که محتوا از قبل موجود باشد نیز تطابق پیدا میکند، مگر اینکه مثلاً با --not --in=here محدود شود.
- --want-drop
- تنها زمانی مطابقت دارد که تنظیمات محتوای ترجیحی برای مخزن محلی تمایل به رها کردن (drop) محتوا داشته باشند. توجه داشته باشید که این گزینه حتی زمانی که محتوا وجود نداشته باشد نیز تطابق دارد، مگر اینکه مثلاً با --not --in=here محدود شود.
- مواردی که با این گزینه تطابق دارند الزاماً توسط git-annex drop --auto رها نخواهند شد. این گزینه بررسی نمیکند که آیا نسخههای کافی برای رهاسازی وجود دارد یا خیر. همچنین ممکن است همان محتوا توسط فایلی استفاده شود که تمایلی به رهاسازی آن وجود ندارد.
- --want-get-by=repository
- تنها زمانی مطابقت دارد که تنظیمات محتوای ترجیحی برای مخزن مشخصشده، تمایل به دریافت محتوا را مشخص کرده باشند. توجه داشته باشید که حتی اگر محتوا از قبل در آن مخزن موجود باشد نیز تطابق خواهد داشت، مگر اینکه با --not --in=repository محدود شود.
- مخزن باید با استفاده از نام یک ریموت پیکربندیشده، یا شناسهٔ UUID یا توضیحات مخزن مشخص شود. --want-get-by=here همان --want-get است.
- --want-drop-by=repository
- تنها زمانی مطابقت دارد که تنظیمات محتوای ترجیحی برای مخزن مشخصشده، تمایل به رهاسازی محتوا داشته باشند. توجه داشته باشید که این گزینه حتی زمانی که محتوا موجود نباشد نیز تطابق دارد، مگر اینکه با --not --in=repository محدود شده باشد.
- مخزن باید با استفاده از نام یک ریموت پیکربندیشده، یا شناسهٔ UUID یا توضیحات مخزن مشخص شود. --want-drop-by=here همان --want-drop است.
- --accessedwithin=interval
- زمانی مطابقت دارد که به محتوا در مخزن محلی اخیراً و در بازهٔ زمانی مشخصشده دسترسی صورت گرفته باشد.
- بازهٔ زمانی میتواند به شکل «5m» یا «1h» یا «2d» یا «1y»، یا ترکیبی مانند «1h5m» باشد.
- بنابراین برای نمونه، --accessedwithin=1d زمانی تطابق دارد که در طول یک روز گذشته به محتوا دسترسی یافته شده باشد.
- اگر سیستمعامل یا سیستمفایل از زمانهای دسترسی (access times) پشتیبانی نکنند، این گزینه با هیچ موردی تطابق نخواهد داشت.
- --presentsince=repository:interval
- زمانی مطابقت دارد که محتوای فایل در طول تمام بازهٔ زمانی مشخصشده، در مخزن مورد نظر وجود داشته است.
- مخزن باید با استفاده از نام یک ریموت پیکربندیشده، یا شناسهٔ UUID یا توضیحات یک مخزن مشخص شود. برای مخزن جاری، از «here» استفاده کنید.
- بازهٔ زمانی میتواند به شکل «5m» یا «1h» یا «2d» یا «1y»، یا ترکیبی مانند «1h5m» باشد.
- بنابراین برای نمونه، --presentsince=here:1d با فایلهایی که به مدت ۱ روز در مخزن جاری بودهاند مطابقت دارد.
- --lackingsince=repository:interval
- این گزینه عکس --presentsince است؛ زمانی مطابقت دارد که در طول تمام بازهٔ زمانی مشخصشده، محتوا در مخزن مورد نظر حضور نداشته است.
- برای نمونه، --lackingsince=here:1d با فایلی که بیش از ۱ روز پیش از مخزن محلی رها شده و از آن زمان تاکنون در آن نبوده است تطابق پیدا میکند. همچنین با فایلهایی که هرگز در مخزن محلی حاضر نبودهاند نیز تطابق خواهد داشت.
- --changedsince=repository:interval
- زمانی مطابقت دارد که تغییری در محتوای ذخیرهشده در مخزن در طول بازهٔ زمانی مشخصشده رخ داده باشد.
- برای نمونه، --changedsince=here:2d با فایلی که در مخزن حاضر بوده اما ۱ روز پیش رها شده است مطابقت دارد، و با فایلی که مخزن ۱ روز پیش آن را دریافت کرده است نیز تطابق دارد؛ اما با فایلی که از ۲ روز پیش تاکنون در مخزن پیوسته حضور داشته است مطابقت نخواهد داشت.
- --unlocked
- با فایلهای ضمیمهشدهای که قفلگشایی شدهاند (unlocked) مطابقت دارد.
- --locked
- با فایلهای ضمیمهشدهای که قفل هستند (locked) مطابقت دارد.
- --mimetype=glob
- نوع MIME یک فایل را بررسی کرده و انطباق الگوی glob با آن را میسنجد.
- برای نمونه، --mimetype="text/*" با انواع گوناگونی از فایلهای متنی مطابقت دارد، از جمله «text/plain»، و همچنین «text/x-shellscript»، «text/x-makefile» و غیره.
- انواع MIME دقیقاً همانهایی هستند که با اجرای دستور file --mime-type نمایش داده میشوند.
- اگر محتوای ضمیمهشدهٔ فایل حاضر نباشد، فایل تطابق داده نخواهد شد.
- این گزینه تنها زمانی در دسترس است که git-annex با فلگ ساخت MagicMime کامپایل شده باشد.
- --mimeencoding=glob
- کدگذاری MIME یک فایل را بررسی کرده و تطابق الگوی glob با آن را میسنجد.
- برای نمونه، --mimeencoding=binary با انواع فایلهای باینری مطابقت دارد.
- کدگذاریهای MIME همانهایی هستند که با اجرای دستور file --mime-encoding نمایش داده میشوند.
- اگر محتوای ضمیمهشدهٔ فایل حاضر نباشد، فایل تطابق نخواهد داشت.
- این گزینه تنها زمانی در دسترس است که git-annex با فلگ ساخت MagicMime کامپایل شده باشد.
- --anything
- همیشه مطابقت دارد. یکی از کاربردهای مفید آن این است که git-annex find --anything تمام فایلهای ضمیمهشده را، صرفنظر از اینکه محتوای آنها حاضر باشد یا خیر، فهرست میکند.
- --nothing
- هرگز مطابقت ندارد. (مشابه با --not --anything)
- --not
- گزینهٔ تطبیقی بعدی را معکوس میکند. برای نمونه، جهت مطابقت در حالتی که کمتر از ۳ نسخه وجود دارد، از --not --copies=3 استفاده کنید.
- --and
- الزام میکند که هم گزینهٔ تطبیق قبلی و هم بعدی مطابقت داشته باشند. این حالت پیشفرض است.
- --or
- الزام میکند که گزینهٔ تطبیق قبلی یا بعدی مطابقت داشته باشند.
- -(
- یک گروه از گزینههای تطبیق را باز میکند.
- -)
- یک گروه از گزینههای تطبیق را میبندد.
همچنین ببینید (SEE ALSO)
نویسندگان (AUTHORS)
Joey Hess <id@joeyh.name>