رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
تغییر گروهی نام فایل ها
#1
Question 
سلام برای تغییر گروهی اسم file ها در لینوکس از چه کدی باید استفاده کنیم؟
پاسخ
تشکر شده توسط:
#2
مثلاً چه جور تغییر نامی موردنظرتونه؟ اسامی مبدأ و مقصد رو مشخص کنید تا دستورش رو درصورت امکان بگذاریم.
پاسخ
تشکر شده توسط: mahdirabbani
#3
در این مورد نام فایل های منبع هر چیزی میتونه باشه و نام فایل های مقصد به ترتیب:‌ a1 , a2 , a3 , ...
ولی اگر امکانش هست یک دستور کلی برای این کار بفرمایید.
پاسخ
تشکر شده توسط:
#4
فرض میکنم میخواین تمام عکسهای یک پوشه رو که پسوند jpg. دارن شماره گذاری کنین. این کد رو امتحان کنید:
ls | cat -n | while read n f; do mv "$f" "a$n.jpg"; done

توضیح:
  1. ls فایلهای یک پوشه رو فهرست میکنه
  2. cat -n بهشون شماره خط رو اضافه میکنه
  3. while read n f تا وقتی که بتونه یه خط بخونه، قسمت اول رو توی متغیر n و قسمت دوم رو توی f ذخیره میکنه
  4. "do mv "$f" "a$n.jpg دستور mv رو برای تغییر نام اجرا میکنه و f$ یعنی اسم فایل میشه پارامتر اول و a$n.jpg میشه پارامتر دوم
  5. done هم پایان حلقه while رو مشخص میکنه

نکته: تستش نکردم ولی باید کار کنه.

یادآوری: bash فقط یه خط فرمان نیست، یه زبان برنامه نویسیه.
پاسخ
تشکر شده توسط: mahdirabbani , Eshpilen
#5
یه راه دیگه: این کد رو به اسم myrename داخل مسیر usr/bin/ ذخیره کنید:
#!/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 و... شماره گذاری بشن.
پاسخ
تشکر شده توسط: mahdirabbani




کاربران در حال بازدید این موضوع: 2 مهمان