آموزش

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

اگر تعداد زیادی فایل دارید که باید نام همه‌شان به چیز مشابه دیگری تغییر کند، در ویندوز معمولا به سراغ 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 تغییرخواهد کرد و نام فایل بعدی به همین ترتیب و...

در نتیجه در کمتر از چند ثانیه، فولدری جدید خواهیم داشت که اطلاعات فایل‌هایمان در آن به‌روز شده‌اند.

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۰

نیازمندی ها