X
تبلیغات
رایتل

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

جمعه 15 مهر‌ماه سال 1390 ساعت 08:19 ب.ظ
irancn.com

فرض بگیریم فولدری دارید که تعداد زیادی فایل در آن وجود دارد و می‌خواهید نام فایل‌ها را عوض کنید.

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

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

for var in ;

‌var;done$ do

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

‌{var/originaltext/replacetext}$‌

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

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

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

‌ .jpg230.jpg Image_230mv IMG_

del.icio.us  digg  newsvine  furl  Y!  smarking  segnalo