نعلم أن الوندوز يستطيع تسمية عدة ملفات في نفس الوقت بعد الضغط على F2 و اختيار اسم لتصبح جميع الملفات مرقمة بنفس الإسم و لكن ماذا عن أنظمة Linux و Unix هل يمكنه تغيير أسماء ملفات عشرات الصور في نفس الوقت, الإجابة استغرق البحث عنها يوم بأكمله من تدقيق و بحث في الكودات و السكريبتات لأستطيع أن أستخلص أنه قادر على ذلك, ليس هذا فحسب بل يستطيع تغيير اﻷسماء بأنماط أخرى بحسب طريقة تفكير مستعمله و قدرته على البرمجة
تنبيه هام : يرجى القيام بحفظ نسخة احتياطية قبل البدأ بالعملية لأن الملفات قد تحذف و لن يمكنك بعدها استعادتها
المتطلبات: ستحتاج لمعرفة البرمجة بواسطة shell لفهم محتوى كل كود و من ثم تعديله ليتلائم مع الحالة التي تنوي استعماله فيها. سنستعمل كذلك أمر rename الذي يستعمل على Terminal و برمج بواسطة perl و قاعدة استعماله كالتالي:
أي أننا سنضع الإسم القديم ثم الإسم الجديد ثم الملفات التي سنطبقه عليها.
أمثلة عملية:
تغيير امتداد
(في المثال تعويض webm ب flv)
rename 's/\.webm/\.flv/' *.webm
أرجو أن تكونو قد استمتعتم
تنبيه هام : يرجى القيام بحفظ نسخة احتياطية قبل البدأ بالعملية لأن الملفات قد تحذف و لن يمكنك بعدها استعادتها
المتطلبات: ستحتاج لمعرفة البرمجة بواسطة shell لفهم محتوى كل كود و من ثم تعديله ليتلائم مع الحالة التي تنوي استعماله فيها. سنستعمل كذلك أمر rename الذي يستعمل على Terminal و برمج بواسطة perl و قاعدة استعماله كالتالي:
rename oldname newname *.files
أي أننا سنضع الإسم القديم ثم الإسم الجديد ثم الملفات التي سنطبقه عليها.
أمثلة عملية:
حذف الفراغ بين الكلمات
Remove all blank space with rename command
rename "s/ *//g" *.png
في هذه الحالة طبقة الكود على ملفات png أي أنك ستحتاج إلى تغييرها
ب mp3 مثلا إذا كنت تريد تطبيقها على الصوتيات
لحذف الإمتددات
To remove .jpg file extension
rename 's/\.jpg$//' *.jpg
تغيير امتداد
(في المثال تعويض webm ب flv)
rename 's/\.webm/\.flv/' *.webm
الكتابة بأحرف صغيرة
To convert all uppercase filenames to lowercase
rename 'y/A-Z/a-z/' *
الكتابة بأحرف كبيرة
To convert all lowercase filenames to uppercase
rename 'y/a-z/A-Z/' *
حذف اﻷرقام و تعوضها
"_" ب
To convert the number to _
rename 'y/0-9/_/' *.png
لحذف اﻷرقام
To remove the number
rename 'y/0-9/ /' *.png
rename "s/ *//g" *.png
تحويل الأسماء بأخرى جديدة
#rename foo1.a,foo2.a,…,foo10.a To xxx1.a,xxx2.a,….,xxx10.a
rename 's/foo(.*)\.a/xxx$1.avi/' *.a
حيث foo هو اﻹسم القديم
xxx هو الإسم الجديد
*.a
هو الإمتداد الذي سنعمل عليه
مثال لتحويل Screeshot إلى pic
rename 's/screenshot(.*)\.png/pic$1.png/' *.png
إضافة امتداد
Add extension
for file in *; do
mv "$file" "$file".mp3;
done
mv "$file" "$file".mp3;
done
و يمكن كتابته في سطر واحد على الترمنال أو عمل ملف يكون
امتداده sh.
جعل الملفات مرقمة
gal04_1024-768_tcm251-138886.jpg
gal05_1024-768_tcm251-138890.jpg
gal07_1024-768_tcm251-138898.jpg
rename these files as 1.jpg 2.jpg….
i=1
for j in *.jpg; do mv "$j" "$i.jpg" ;(( i++ )); done
for j in *.jpg; do mv "$j" "$i.jpg" ;(( i++ )); done
j لاحتساب الملفات و i لتسميتها انطلاقا من احد
أرجو أن تكونو قد استمتعتم
الف شكر على الشرح الجميل فعلا استفد كثيرا فلم اكن اعرف كيف افعل ذلك عل لينكس ... الف شكر اخى
ردحذف