13-06-1394، 12:10 ب.ظ
13-06-1394، 06:06 ب.ظ
مثلاً چه جور تغییر نامی موردنظرتونه؟ اسامی مبدأ و مقصد رو مشخص کنید تا دستورش رو درصورت امکان بگذاریم.
13-06-1394، 06:15 ب.ظ
در این مورد نام فایل های منبع هر چیزی میتونه باشه و نام فایل های مقصد به ترتیب: a1 , a2 , a3 , ...
ولی اگر امکانش هست یک دستور کلی برای این کار بفرمایید.
ولی اگر امکانش هست یک دستور کلی برای این کار بفرمایید.
14-06-1394، 12:55 ق.ظ
فرض میکنم میخواین تمام عکسهای یک پوشه رو که پسوند jpg. دارن شماره گذاری کنین. این کد رو امتحان کنید:
توضیح:
نکته: تستش نکردم ولی باید کار کنه.
یادآوری: bash فقط یه خط فرمان نیست، یه زبان برنامه نویسیه.
ls | cat -n | while read n f; do mv "$f" "a$n.jpg"; done
توضیح:
- ls فایلهای یک پوشه رو فهرست میکنه
- cat -n بهشون شماره خط رو اضافه میکنه
- while read n f تا وقتی که بتونه یه خط بخونه، قسمت اول رو توی متغیر n و قسمت دوم رو توی f ذخیره میکنه
- "do mv "$f" "a$n.jpg دستور mv رو برای تغییر نام اجرا میکنه و f$ یعنی اسم فایل میشه پارامتر اول و a$n.jpg میشه پارامتر دوم
- done هم پایان حلقه while رو مشخص میکنه
نکته: تستش نکردم ولی باید کار کنه.
یادآوری: bash فقط یه خط فرمان نیست، یه زبان برنامه نویسیه.
14-06-1394، 01:01 ق.ظ
یه راه دیگه: این کد رو به اسم myrename داخل مسیر usr/bin/ ذخیره کنید:
حالا کافیه توی هر پوشه ای که هستین، دستور myrename رو اجرا کنید تا تمام عکسهای jpg. اون پوشه با فرمت a1.jpg و a2.jpg و... شماره گذاری بشن.
#!/bin/sh num=1 for file in *.jpg; do mv "$file" "a$(printf "%u" $num).jpg" let num=$num+1 done
حالا کافیه توی هر پوشه ای که هستین، دستور myrename رو اجرا کنید تا تمام عکسهای jpg. اون پوشه با فرمت a1.jpg و a2.jpg و... شماره گذاری بشن.