QCMD(1) General Commands Manual QCMD(1)

qmv, qcp - تغییر نام یا رونوشت سریع فایل‌ها با ویرایش نام آن‌ها در یک ویرایشگر متن

qcp [OPTION]... [FILE]...

qmv [OPTION]... [FILE]...

qcmd --command=COMMAND [OPTION]... [FILE]...

این صفحهٔ راهنما دستورهای qcp، qmv و qcmd را شرح می‌دهد.

برنامهٔ qmv امکان تغییر نام فایل‌ها را از طریق ویرایش نام‌های آن‌ها در هر ویرایشگر متنی فراهم می‌کند. با تغییر یک حرف در یک سند متنی، می‌توان حرفی را در نام فایل تغییر داد. از آنجا که فایل‌ها پشت سر هم فهرست می‌شوند، اعمال تغییرات مشترک بسیار سریع‌تر انجام می‌گیرد.

برنامهٔ qcp مانند qmv عمل می‌کند، اما به‌جای انتقال فایل‌ها، از آن‌ها رونوشت (کپی) می‌گیرد.

برنامهٔ qmv با در نظر گرفتن ایمنی ساخته شده است - با انجام بیشترین بررسی‌های ممکن، از تغییر نام‌های نادرست ناشی از خطای انسانی جلوگیری می‌شود. به همین دلیل، qmv از یک حالت تعاملی پشتیبانی می‌کند که در آن هر مرحله از فرآیند تغییر نام را می‌توان به صورت دستی اجرا کرد. حالت پیش‌فرض اجرای qmv در حالت غیرتعاملی است. با این حال، در صورت بروز تداخل یا خطا، qmv به حالت تعاملی بازمی‌گردد (به‌جای اینکه تمام تغییرات اعمال‌شده توسط کاربر از دست برود). برای اطلاعات بیشتر دربارهٔ فرآیند تغییر نام و حالت تعاملی، بخش زیر را ببینید. این موارد برای qcp نیز صدق می‌کند.

برنامهٔ qcmd دقیقاً مانند qmv و qcp کار می‌کند اما به شما امکان می‌دهد مشخص کنید چه دستوری اجرا شود.

برنامهٔ ls(1) برای فهرست کردن فایل‌ها جهت تغییر نام یا رونوشت به کار می‌رود. بنابراین qmv، qcp و qcmd برخی از گزینه‌های ls را می‌پذیرند.

فرآیند تغییر نام یا رونوشت فایل‌ها از چندین مرحله تشکیل شده است:

فهرست کردن فایل‌ها
تولید فهرستی از فایل‌ها جهت تغییر نام از روی آرگومان‌های خط فرمان با استفاده از ls(1).
ایجاد یک فایل متنی قابل ویرایش
قالب ویرایش، یک فایل متنی قابل ویرایش شامل نام‌های فایل‌ها ایجاد می‌کند.
اجرای ویرایشگر
ویرایشگر متن را اجرا کرده و تا اتمام ویرایش توسط کاربر منتظر می‌ماند.
خواندن فایل متنی ویرایش‌شده
قالب ویرایش، فایل متنی ویرایش‌شده را که اکنون حاوی نام‌های به‌روزشده است می‌خواند.
بررسی تغییر نام و بازآرایی برای حل تداخل‌ها (فقط در qmv)
این یک مرحلهٔ پیچیده است که وظایف زیر را در بر دارد:

علامت‌گذاری تغییر نام‌هایی که در آن‌ها فایل مقصد از قبل وجود دارد، مواردی که در آن‌ها فایل قدیمی اکنون مفقود یا غیرقابل دسترسی است، و مواردی که در آن‌ها نام جدید تغییر نکرده است. انجام یک مرتب‌سازی توپولوژیک روی تغییر نام‌ها، به طوری که تغییر نام b->c و a->b امکان‌پذیر باشد. حل ارجاعات متقاطع با تغییر نام موقت، به طوری که تغییر نام e->f و f->e (یا e->f و f->g و g->e و غیره) ممکن شود.

نتیجهٔ این مرحله یک برنامهٔ اجرایی (plan) برای تغییر نام‌ها است.

نمایش برنامهٔ اجرایی
برنامهٔ اجرایی را به کاربر نشان می‌دهد.
اعمال برنامهٔ اجرایی
اعمال برنامهٔ اجرایی با تغییر نام یا رونوشت واقعی فایل‌ها (مگر اینکه --dummy مشخص شده باشد).

اگر در هر یک از مراحل بالا (به جز مرحلهٔ اول) خطایی رخ دهد، qmv/qcp به حالت تعاملی تغییر وضعیت می‌دهد. بدین ترتیب هیچ تغییری از دست نخواهد رفت و خطاها را می‌توان پیش از ادامه به صورت دستی تصحیح کرد. برای شرح حالت تعاملی بخش زیر را ببینید.

این برنامه‌ها از ساختار نحوی معمول خط فرمان GNU پیروی می‌کنند که در آن گزینه‌های طولانی با دو خط تیره (`-') آغاز می‌شوند.

(به ls ارسال می‌شود.) ورودی‌هایی که با «.» آغاز می‌شوند را پنهان نمی‌کند.
(به ls ارسال می‌شود.) ورودی‌های ضمنی `.' و `..' را فهرست نمی‌کند.
(به ls ارسال می‌شود.) ورودی‌های ضمنی که به `~' ختم می‌شوند را فهرست نمی‌کند.
(به ls ارسال می‌شود.) مرتب‌سازی بر اساس ctime (زمان آخرین تغییر وضعیت فایل).
اجرای COMMAND به‌جای mv یا cp.
(به ls ارسال می‌شود.) فهرست کردن ورودی‌های دایرکتوری به‌جای محتویات آن‌ها.
(به ls ارسال می‌شود.) معکوس کردن ترتیب در مرتب‌سازی.
(به ls ارسال می‌شود.) فهرست کردن بازگشتی زیرپوشه‌ها.
(به ls ارسال می‌شود.) مرتب‌سازی بر اساس اندازهٔ فایل.
(به ls ارسال می‌شود.) مرتب‌سازی بر اساس پسوند (-X)، هیچ‌کدام (-U)، اندازه (-S)، زمان (-t)، نسخه (-v)، وضعیت (-c)، زمان دسترسی (-u) یا دستیابی (-u).
(به ls ارسال می‌شود.) اگر مرتب‌سازی بر اساس زمان انجام شود (--sort=time)، بر اساس atime، access، use، ctime یا زمان وضعیت (status time) مرتب می‌کند.
(به ls ارسال می‌شود.) مرتب‌سازی بر اساس زمان تغییر محتوا.
(به ls ارسال می‌شود.) مرتب‌سازی بر اساس زمان آخرین دسترسی.
(به ls ارسال می‌شود.) مرتب نمی‌کند؛ ورودی‌ها را به ترتیب موجود در دایرکتوری فهرست می‌کند.
(به ls ارسال می‌شود.) مرتب‌سازی الفبایی بر اساس پسوند ورودی‌ها.
تغییر قالب ویرایش فایل متنی. برای مقادیر ممکن بخش زیر را ببینید.
ارسال گزینه‌ها به قالب ویرایش انتخاب‌شده. OPTIONS در این قالب است:

OPTION[=VALUE][,OPTION[=VALUE]...]

برای دریافت فهرستی از گزینه‌های موجود برای هر قالب، از --options=help استفاده کنید یا بخش زیر را ببینید.

شروع در حالت دستوری (برای اطلاعات دربارهٔ این حالت بخش زیر را ببینید).
مشخص کردن برنامه‌ای که فایل متنی با آن ویرایش شود. برنامهٔ پیش‌فرض از متغیر محیطی VISUAL، یا در صورت تنظیم نبودن آن از متغیر محیطی EDITOR تعیین می‌شود. اگر هیچ‌یک تنظیم نشده باشند، از برنامه‌ای با نام editor استفاده می‌شود.
مشخص کردن مسیر برنامهٔ ls. در صورت حذف دایرکتوری، فایل اجرایی در دایرکتوری‌های مشخص‌شده در متغیر محیطی PATH جستجو خواهد شد.
توضیحات بیشتر دربارهٔ عملیاتی که در حال انجام است.
انجام تمام کارها طبق معمول، بدون تغییر نام واقعی فایل‌ها (حالت «صوری»).
نمایش خلاصه‌ای از گزینه‌ها.
نمایش اطلاعات نسخه و خروج..SH "قالب‌های ویرایش (EDIT FORMATS)" یک قالب ویرایش مسئول تولید یک فایل متنی برای ویرایش و تجزیه (parse) آن پس از ویرایش است. قالب پیش‌فرض، دو ستونی (dual-column) است، اما قالب‌های دیگری نیز وجود دارند.

همهٔ قالب‌های ویرایش گزینه‌های یکسانی نمی‌پذیرند. بنابراین، مشخص کردن آن‌ها با استفاده از گزینهٔ --options (-o) ضروری است. این گزینه فهرستی از «زیرگزینه‌ها» را می‌پذیرد، مشابه گزینهٔ -o در mount(8).

قالب‌های ویرایش موجود عبارتند از `single-column' (یا `sc')، `dual-column' (یا `dc') و `destination-only' (یا `do'). قالب پیش‌فرض، dual-column است.

قالب dual-column (`dual-column' یا `dc') فایل‌ها را در دو ستون نمایش می‌دهد. این قالب پیش‌فرض و توصیه‌شده است. ستون سمت چپ معمولاً نام فایل مبدأ است (که نباید ویرایش شود) و ستون سمت راست نام فایل مقصد است.

گزینه‌های پشتیبانی‌شده:

جابه‌جایی مکان نام‌های قدیم و جدید هنگام ویرایش؛ یعنی ستون سمت چپ نام فایل مقصد و ستون سمت راست نام فایل مبدأ خواهد بود.
قرار دادن یک خط خالی بین تمام تغییر نام‌ها.
به‌طور پیش‌فرض، نویسه‌های تب با اندازهٔ ۸ برای جداسازی ستون‌ها استفاده می‌شوند. با این گزینه می‌توان عرض این نویسه‌های تب را تغییر داد.
استفاده از نویسه‌های فاصله به‌جای نویسه‌های تب هنگام ایجاد تورفتگی.
این گزینه موقعیت نویسه (به‌صورت افقی) را که نام فایل دوم از آن شروع می‌شود، مشخص می‌کند.
در حالت عادی، اگر نام فایل مبدأ طولانی‌تر از تعداد نویسه‌های width باشد، نام مقصد در خط بعدی چاپ می‌شود. اما با فعال بودن این گزینه، qmv/qcp عرض را به‌گونه‌ای تنظیم می‌کند که نام فایل‌های مبدأ و مقصد در یک خط نمایش داده شوند.

اگر پیش از autowidth عرضی با استفاده از width مشخص شده باشد، از آن عرض به‌عنوان حداقل عرض استفاده خواهد شد.

مثال: فرض کنید width=10,autowidth مشخص شده باشد. حتی اگر تمام نام‌های فایل‌های مبدأ کوتاه‌تر از پنج نویسه باشند، عرض تفکیک ۱۰ خواهد بود. اگر نام فایلی با طول بیش از ۱۰ نویسه وجود داشته باشد، عرض نهایی بیش از ۱۰ نویسه خواهد شد.

این گزینه به‌طور پیش‌فرض فعال است.

متنی که پیش از نام فایل نخست (ستون اول) قرار می‌گیرد.
متنی که پیش از نام فایل دوم (ستون دوم) قرار می‌گیرد.
نمایش خلاصهٔ گزینه‌های قالب ویرایش.

قالب single-column (`single-column' یا `sc') فایل‌ها را در یک ستون نمایش می‌دهد - ابتدا نام فایل مبدأ و در خط بعدی نام فایل مقصد.

گزینه‌های پشتیبانی‌شده:

جابه‌جایی مکان نام‌های قدیم و جدید هنگام ویرایش؛ یعنی خط نخست شامل نام فایل مقصد و خط بعدی شامل نام فایل مبدأ خواهد بود.
قرار دادن یک خط خالی بین تمام تغییر نام‌ها.
متنی که پیش از نام فایل نخست قرار می‌گیرد.
متنی که پیش از نام فایل دوم قرار می‌گیرد.
نمایش خلاصهٔ گزینه‌های قالب ویرایش.

قالب destination-only (`destination-only' یا `do') فقط نام فایل مقصد را نمایش می‌دهد، هر کدام در یک خط. عموماً استفاده از این قالب توصیه نمی‌شود، زیرا تنها راه تشخیص نام فایل مبدأ بررسی شمارهٔ خط است؛ اما ممکن است با برخی از ویرایشگرهای متن مفید باشد.

گزینه‌های پشتیبانی‌شده:

قرار دادن یک خط خالی بین تمام تغییر نام‌ها (نام‌های فایل).

در حالت تعاملی qmv/qcp دستورها را از صفحه‌کلید خوانده، آن‌ها را تجزیه و اجرا می‌کند. این کار با استفاده از GNU readline انجام می‌شود.

دستورهای زیر در دسترس هستند:

انتخاب فایل‌ها برای تغییر نام. اگر فایلی مشخص نشود، تمام فایل‌های موجود در دایرکتوری جاری انتخاب می‌شوند. گزینه‌های پذیرفته‌شده مواردی هستند که به ls(1) ارسال می‌شوند. برای نمایش فهرستی از آن‌ها از `help ls' استفاده کنید.
خواندن فایل‌ها برای تغییر نام از یک فایل متنی. هر خط باید متناظر با یک فایل موجود برای تغییر نام باشد.
ویرایش موارد تغییر نام در یک ویرایشگر متن. اگر این دستور قبلاً اجرا شده باشد و `all' مشخص نشود، تنها موارد تغییر نام دارای خطا ویرایش می‌شوند.
نمایش طرح فعلی تغییر نام. (این طرح پس از اجرای `edit' ایجاد می‌شود.)
اعمال طرح فعلی، یعنی تغییر نام فایل‌ها. تنها فایل‌هایی که در طرح وضعیت OK دارند تغییر نام خواهند یافت.
اگر برخی تغییر نام‌ها پیش‌تر در هنگام `apply' ناموفق بوده باشند، این دستور آن موارد را دوباره امتحان می‌کند.
نمایش مقدار متغیر پیکربندی مشخص‌شده، یا تمام متغیرها در صورت مشخص نشدن هیچ متغیری. برای مشاهدهٔ فهرستی از متغیرهای پیکربندی به بخش زیر مراجعه کنید.
تنظیم مقدار یک متغیر پیکربندی.
خروج از برنامه. در صورت وجود تغییرات اعمال‌نشده، به کاربر اطلاع داده خواهد شد و برای خروج از برنامه لازم است این دستور یک بار دیگر اجرا شود.
help [ls|usage]
در صورت تعیین `ls'، گزینه‌های فهرست‌بندی را نمایش می‌دهد. اگر `usage' مشخص شده باشد، گزینه‌های پذیرفته‌شدهٔ خط فرمان را نمایش می‌دهد. در غیر این صورت، راهنمای دستورها در حالت تعاملی را نمایش خواهد داد.
نمایش اطلاعات نسخه..SH "متغیرها (VARIABLES)" متغیرهای زیر در حالت تعاملی در دسترس هستند:
dummy BOOLEAN
این متغیرها متناظر با گزینه‌هایی با همین نام هستند.
این متغیر شامل نام فایل موقتی است که با `edit' ویرایش می‌شود. این متغیر نمی‌تواند مقداردهی شود؛ تنها با `show' خوانده می‌شود.

یک مقدار بولی با `0'، `false'، `no'، `off' یا `1'، `true'، `yes' و `on' مشخص می‌شود. رشته‌ها بدون علامت نقل‌قول مشخص می‌شوند.

ویرایش نام فایل‌ها در دایرکتوری جاری.
qmv

ویرایش نام فایل‌های دارای پسوند `.c'. مرتب‌سازی فایل‌ها بر اساس زمان تغییر.
qmv -t *.c

ویرایش نام فایل‌ها با استفاده از ویرایشگر nedit و با عرض ستون 100.
qmv -enedit -owidth=100

گزارش باگ‌ها به <oskar@osk.mine.nu>.

نویسندهٔ renameutils و این صفحهٔ راهنما Oskar Liljeblad <oskar@osk.mine.nu> است.

حق نشر © 2001, 2002, 2004, 2005, 2007, 2008, 2011 Oskar Liljeblad

این یک نرم‌افزار آزاد است؛ برای شرایط تکثیر، سورس‌کد را ببینید. هیچ ضمانتی وجود ندارد؛ حتی برای قابلیت فروش یا تناسب با یک هدف خاص.

December 4, 2007 qcmd (renameutils)