تغییر نام صدها فایل فقط با یک دستور

ضعیفمتوسطخوبعالیمحشر
تغییر نام صدها فایل تنها با یک دستور
تغییر نام صدها فایل تنها با یک دستور

فرض بگیریم فولدری دارید که تعداد زیادی فایل در آن وجود دارد و می‌خواهید نام فایل‌ها را عوض کنید. مثلا همه‌شان نام ‌IMG‌ دارند و می‌خواهید به جای آن بنویسید ‌Image‌. به‌طور یقین تغییر نام به روش دستی ساعت‌ها به‌طول می‌‌انجامد اما با کمک این فن کوچک و مختصر، می‌توانید وقت زیادی را بخرید:

دستور ‌for‌ در اسکریپت‌ها اینگونه عمل می‌کند:‌

for var in <files>;

‌var;done$ do <command>‌

می‌توانید به‌جای ‌<files>‌ هر چیزی بنویسید. مثلا * یا ‌*.txt‌ همچنین می‌توانید داخل ‌<command>‌ هر چیزی که دستور لینوکس باشد را اجرا کنید. توجه کنید که دستور هر بار که یک فایل پیدا شد اجرا می‌شود. حالا اینجا با کمک یک متغیر می‌توانیم کار را جالب‌تر کنیم. به‌جای این‌که فقط از متغیر استفاده کنیم (مثل var$(‌ می‌توانیم با استفاده از این الگوی نگارشی، عملیات جایگزینی را هم روی هوا انجام دهیم: ‌ ‌

‌{var/originaltext/replacetext}$‌

بنابراین اگر این دستور را داخل دایرکتوری عکس‌هایمان اجرا کنیم: ‌ ‌

{f/IMG/Image}; done$ f$ for f in *; do mv

برای هر فایلی که دارای الگوی * باشد (یعنی همه فایل‌ها)، دستور زیر اجرا می‌شود:‌

‌ .jpg230.jpg Image_230mv IMG_

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *