اگر تعداد زیادی فایل دارید كه باید نام همهشان به چیز مشابه دیگری تغییر كند، در ویندوز معمولا به سراغ Batch File Processorها خواهیم رفت (كه پیشتر در همین ضمیمه چند نرمافزار مرتبط معرفی شده است).
اما كاربران دو آتشه لینوكس، معمولا به این افتخار میكنند كه ترمینال قدرتمند لینوكسی، آنها را از نصب بيشتر نرمافزارهای خرد و جانبی بینیاز میكند و میتوانند مستقیما امور حرفهایتری انجام دهند.
تغییر دستی نام فایلها مدت زیادی طول میكشد، اما اگر بتوان اسكریپتی نوشت كه تكتك فایلهای یك دایركتوری را بخواند و نام هر فایل را تغییر دهد، در وقت بسیار صرفهجویی خواهد شد.
دستور for در اسكريپتها اينگونه عمل ميكند:
for var in «files»;do «command» $var;done
ميتوان بهجاي «files» هر چيزي نوشت. مثلا * يا *.txt همچنين ميتوانيد داخل «command» هر چيزي را كه دستور لينوكسی باشد اجرا كرد. توجه داشته باشید كه این دستور هر بار كه فايلی پيدا شد، اجرا ميشود.
حالا با كمك يك متغير ميتوانيم كار را جالبتر كنيم. بهجاي اينكه فقط از متغير استفاده كنيم (مثل var$) ميتوانيم با استفاده از اين الگوي نگارشي، عمليات جايگزيني را هم انجام دهيم:
${var/originaltext/replacetext}
بنابراين اگر اين دستور را داخل دايركتوري از عكسها با نامهای مشابه اجرا كنيم:
for f in *;do mv $f ${f/IMG/Image};done
براي هر فايلي كه داراي الگوي * باشد (يعني همه فايلها)، دستور زير اجرا ميشود:
mv IMG_00042.jpg Image_00042.jpg
و این یعنی نام آن فایل از IMG_00042.jpg به Image_00042.jpg تغییرخواهد كرد و نام فایل بعدی به همین ترتیب و...
در نتیجه در كمتر از چند ثانیه، فولدری جدید خواهیم داشت كه اطلاعات فایلهایمان در آن بهروز شدهاند.
منبع:................
+
نوشته شده در یکشنبه سی ام مرداد ۱۳۹۰ساعت 23:0 توسط رادیو 110
|