Jannah Theme License is not validated, Go to the theme options page to validate the license, You need a single license for each domain name.

أوامر وأدوات تساعدك في إعادة تسمية الملفات دفعة واحدة على Linux

قم بتنظيم ملفات Linux الخاصة بك بطريقة سهلة باستخدام طرق إعادة التسمية الدفعية الخمسة هذه

التعامل مع عدد كبير من الملفات في نظام Linux قد يكون مرهقًا عندما تحتاج إلى إعادة تسميتها واحدة تلو الأخرى. سواء كنت ترتب صورًا، مستندات، ملفات صوتية أو سجلات برمجية، فإن إعادة التسمية الدفعية توفّر الوقت وتُقلل الأخطاء. لحسن الحظ، يقدم Linux العديد من الأوامر والأدوات التي تجعل هذه العملية سهلة وسريعة. في هذا الدليل، ستتعرف على أبرز الطرق التي يمكنك استخدامها لإعادة تسمية ملفات متعددة دفعة واحدة، سواء كنت تفضل سطر الأوامر أو تفضل أدوات أكثر تخصيصًا.

a-hand-using-a-laptop-and-linux-mascot-coming-out-of-the-screen-with-a-gear-and-some-files-behind-1-scaled أوامر وأدوات تساعدك في إعادة تسمية الملفات دفعة واحدة على Linux

من أكثر المهام شيوعًا للمبتدئين في لينكس إعادة تسمية الملفات دفعةً واحدة. إذا لم تكن معتادًا على واجهة لينكس، فقد تبدو هذه مهمة يدوية وتستغرق وقتًا طويلًا. ولكن هناك العديد من الطرق لتسريع العملية؛ ما عليك سوى معرفة الأنسب.

مثال على مهام نقل الملفات

لتوضيح كل طريقة، سأستخدم مثالين يمثلان مهام إعادة تسمية شائعة قد ترغب في تنفيذها. هناك العديد من الطرق المختلفة التي قد ترغب في إعادة تسمية الملفات بها، اعتمادًا على أسمائها الحالية وما تفعله بالفعل. يمكن أن يساعد المثالان اللذان سأستخدمهما في توضيح الاستخدام النموذجي لكل أداة. ومع ذلك، ستحتاج إلى البحث في الأداة التي تختارها بشكل أعمق لفهم أفضل طريقة لاستخدامها لاحتياجاتك الخاصة.

ربما يكون تحديد ما تريد فعله بالفعل هو أصعب جزء في إعادة تسمية الملفات دفعةً واحدة. فكّر في الأجزاء التي قد ترغب في حذفها من اسم كل ملف، والتي قد ترغب في الاحتفاظ بها، والتي قد ترغب في ترجمتها إلى شيء آخر.

المهمة الأولى هي تغيير امتداد جميع الملفات المطابقة في المجلد الحالي. على سبيل المثال، تغيير امتداد “.txt” إلى “.md” سيؤدي إلى إعادة تسمية ملف test-001.txt إلى test-001.md، وإعادة تسمية ملف ANOTHER.txt إلى ANOTHER.md. يجب أن ينطبق هذا على الملفات التي تنتهي بـ “.txt” فقط.

المهمة الثانية أكثر تعقيدًا بعض الشيء، وهي إظهار بعض الميزات المتقدمة لهذه الأدوات. يجب أن تحذف جزءًا محددًا من اسم الملف، مع إبقاء كل شيء آخر كما هو. يجب أن ينطبق هذا على جميع الملفات، بشكل متكرر. على وجه التحديد، سأبحث عن جميع الملفات التي بصيغة DDDD_something.ext وأعيد تسميتها إلى DDDD.ext. لذلك، يجب تغيير 1234_this-is-my-doc.doc إلى 1234.doc وdocs/9999_about.txt إلى docs/9999.txt.

1. باستخدام حلقة for، والجمع، واستبدال المعلمات

يستخدم هذا النهج الأول العديد من ميزات غلاف bash، والتي استعارتها العديد من الغلافات الأخرى. أولًا، حلقة for البسيطة، والتي تُستخدم للتكرار على مجموعة من الملفات المرشحة. ثانيًا، تُحدد هذه الملفات باستخدام glob، وهو نمط مُحسّن لمطابقة أسماء الملفات. وأخيرًا، يستخدم هذا النهج صيغة تسمح لك بتعديل السلاسل النصية بناءً على أنماط مُحددة، تُسمى استبدال المعاملات.

اقرأ أيضا:  postmarketOS 25.06 يُحسّن استقرار هواتف Linux ويوسّع قائمة الأجهزة المدعومة

للمهمة الأولى، يمكنك تغيير امتدادات .txt إلى .md باستخدام شيفرة واجهة برمجة التطبيقات التالية:

for file in ./*.txt;
do
    mv -- "$file" "${file%.txt}.md";
done

تتكرر حلقة for عبر جميع الملفات التي تطابق glob ./*.txt. سيؤدي هذا إلى مطابقة جميع الملفات في المجلد الحالي التي تنتهي بامتداد “.txt”.

ينقل الأمر داخل حلقة for الملف إلى اسم جديد، والذي يُولّد باستخدام عامل %. يزيل هذا الرمز من السلسلة النصية أقصر جزء من نمط يُطابق نهايته. في هذه الحالة، يزيل “.txt” من نهاية كل اسم ملف، ثم يُضيف “.md” إلى النهاية.

تحذير
جميع الأمثلة في هذه المقالة توضيحية، ويجب عدم استخدامها بشكل سطحي في بيئة الإنتاج. للحصول على حل فعّال، يجب مراعاة ما إذا كانت ملفاتك تحتوي على أحرف خاصة – وخاصة المسافات – ويجب أن يكون لديك دائمًا سياسة احتياطية للحماية من الأعطال.

تبدأ المهمة الثانية بنمط glob أكثر تعقيدًا للتعامل مع كل من التكرار ومجموعة أوسع من الملفات:

for file in ./**/[[:digit:]][[:digit:]][[:digit:]][[:digit:]]_?*.*;
do
    mv -- "$file" "${file//_*./.}";
done

يتوسع ./**/ ليتوافق مع الدليل الحالي وأي أدلة متداخلة، في أي مستوى أدنى منه. يتطابق نمط [[:digit:]] مع رقم واحد، لذا فإن وجود أربعة أرقام متتالية، متبوعة بشرطة سفلية، سيطابق الملفات المطلوبة.

تأكد من فهم واجهة الأوامر التي تستخدمها لتشغيل هذا الأمر، وميزات التكرار التي تدعمها.

نصيحة
لتفعيل التكرار في Bash 4+‎، تأكد من تشغيل shopt -s globstar، إما كأمر لمرة واحدة أو داخل البرنامج النصي. على نظام Mac، تدعم واجهة أوامر zsh التكرار افتراضيًا.

2. باستخدام حلقة for وsed

خيار آخر للأمر داخل حلقة for هو sed، وهو محرر التدفق. يجب أن يكون برنامج sed متاحًا على أي نظام Linux، بما في ذلك macOS.

for file in ./*.txt;
do
    mv -- "$file" "$(echo "$file" | sed -e 's/txt$/md/')";
done

الفرق في هذا الإصدار هو استبدال المعلمات باستبدال الأوامر واستدعاء الدالة sed. يؤدي بناء الجملة $(…) إلى تشغيل الأمر واستبدال ناتجه في هذه المرحلة.

يستبدل التعبير النمطي المُمرَّر إلى sed قيمة “txt” في نهاية كل اسم ملف بـ “md”. يضمن الرمز $ في النمط حدوث المطابقة في نهاية اسم الملف.

في المهمة الثانية، يصبح التعبير النمطي أكثر تعقيدًا، مع أن النهج الأساسي يبقى كما هو:

for file in ./**/[[:digit:]][[:digit:]][[:digit:]][[:digit:]]_*.*;
do
    mv -- "$file" "$(echo "$file" | sed -E -e 's/([[:digit:]]{4})_.+(\..+)/\1\2/')";
done

لاحظ أن بنية التعبيرات النمطية في sed تدعم عوامل التكرار مثل {4}، مما يُتيح لك تجنب النهج المُطوّل في نمط glob.

اقرأ أيضا:  كيفية إنشاء خادم بريد إلكتروني في Linux باستخدام Mail-In-A-Box

على الرغم من أن حلول sed هذه أطول قليلاً من نظيراتها التي تعتمد على استبدال المعاملات، إلا أنها أسهل في القراءة، خاصةً لمن لديهم فهمٌ للتعبيرات النمطية وsed. إن دعمه للتعبيرات النمطية، إلى جانب العديد من الميزات الأخرى، يجعل sed بديلاً أقوى بكثير. وهذا يجعله خيارًا مُفضّلًا للمتطلبات المُعقدة.

3. استخدام أمر إعادة التسمية

أمر إعادة التسمية هو نص برمجي بلغة بيرل يدعم تشغيل أكواد بيرل عشوائية، وهو مُحسّن للتعامل مع إعادة تسمية الملفات. هذا يعني أنه قوي جدًا، على الرغم من أنك ستحتاج إلى تثبيته على نظام مُتاح عليه بيرل.

بمجرد التثبيت، يكون استخدام rename سهلًا للغاية للمهام البسيطة، مثل إعادة تسمية الامتداد في مثالنا الأول:

rename 's/\txt$/md/' ./*.txt

لاحظ كيف أن التعبير النمطي مطابق للتعبير الموجود في مثال sed المكافئ. لكن تكمن الفائدة هنا في معالجة rename لمدخلات اسم الملف. سيُطبّق البرنامج استبداله على كل وسيطة اسم ملف، لذا فإن استخدام glob الذي يمتد ليشمل جميع ملفات .txt يعني أنه يمكنك إكمال المهمة بسطر واحد.

نصيحة
يدعم أمر rename الخيار -n/–dry-run، الذي يطبع سجلًا بالتغييرات المحتملة، دون إعادة تسمية الملفات فعليًا. هذه وسيلة أمان ممتازة أنصحك باستخدامها كلما أمكن.

تحتاج أيضًا إلى أمر من سطر واحد فقط للمهمة الثانية، حتى لو كان التعبير النمطي أكثر تعقيدًا بعض الشيء.

rename 's/(\/\d{4})_.*(\..*)/$1$2/' ./**/*

لاحظ، مجددًا، أن هذا يستفيد من دعم المدونة الموسّع للمجلدات التكرارية.

4. استخدام zmv مع zsh

إذا كنت تستخدم zsh، وهو غلاف Z، فهناك خيار آخر في متناول يدك، بشرط تفعيله أولًا. zmv هي دالة غلاف تعمل كنسخة مبسطة من إعادة التسمية. ستحتاج إلى تحميلها – إما على أساس كل حالة على حدة، أو عبر برنامج نصي لبدء التشغيل مثل .zshrc – باستخدام هذا الأمر:

autoload zmv

بمجرد تمكينه، يمكنك استدعاء zmv على هذا النحو، لتنفيذ المهمة الأولى:

zmv -W '*.txt' '*.md'

على عكس إعادة التسمية، يُعيدنا zmv إلى استخدام التجميع الشامل (globbing) بدلاً من التعبيرات النمطية، لذا فهو أقل فعالية. ولكن، كما يتضح من هذا المثال، فهو سهل الاستخدام؛ فخيار -W يُبسط بناء الجملة بشكل أكبر من الافتراضي.

نصيحة
نظرًا لكونها دالة شل (shell)، لا تحتوي zmv على صفحة دليل مُدمجة. ولكن يُمكنك الاطلاع على بعض المعلومات عنها عبر man zshcontrib. تجدر الإشارة تحديدًا إلى أنها تدعم أيضًا خيار -n لإجراء تجربة تشغيل.

بما أن zms يتطلب zsh، فإنه يستفيد من التجميع الشامل المُوسّع الذي توفره الشل، بما في ذلك التكرار في المجلدات الفرعية.

zmv '(**/)([0-9][0-9][0-9][0-9])_*(.*)' '$1$2$3'

بدون دعم التعابير النمطية، يكون هذا النمط أطول قليلاً، ولكنه لا يزال سهل القراءة.

اقرأ أيضا:  الدليل الكامل لإدارة حزم Snap في Ubuntu

5. استخدام mmv

يرمز mmv إلى “نقل متعدد”، وهو أداة أخرى مصممة خصيصًا لإعادة تسمية الملفات بشكل جماعي. ستحتاج على الأرجح إلى تثبيته، ولكن هذه مجرد حالة بسيطة من sudo apt install mmv (أوبونتو)، أو sudo yum install mmv (RHEL/CentOS/Fedora)، أو brew install mmv (ماك)، أو ما يعادله في مدير الحزم الذي تختاره.

بعد التثبيت، يمكنك استخدام الأداة لإعادة تسمية الامتدادات بسهولة:

mmv '*.txt' '#1.md'

الفرق الكبير مع mmv هو كيفية تعامله مع الأنماط والمطابقات. بالإضافة إلى الأحرف البدل الأكثر شيوعًا، يدعم mmv أيضًا حرف البدل ; الذي يمكنك استخدامه لمطابقة أي عدد من المجلدات، مما يدعم الطبيعة التكرارية للمهمة الثانية:

mmv -n ';[0-9][0-9][0-9][0-9]_*.*' '#1#2#3#4#5.#7'

لاحظ أيضًا كيف يدعم mmv مراجع التطابقات، ليس عبر الأقواس التقليدية، بل بتعيين رقم فريد لكل حرف بدل. هذا يُعطينا سبع تطابقات مختلفة في تعبير الاستبدال النهائي: واحدة للمسار الرئيسي المُطابق بـ ;، وواحدة لكل رقم من الأرقام الأربعة، وواحدة – #6 – لأي حرف بعد الشرطة السفلية، والتي نتجاهلها، وواحدة للامتداد الذي يلي النقطة.

بسبب هذا النهج، قد يكون mmv مُرهقًا جدًا للمهام التي تتضمن عددًا كبيرًا من أحرف البدل في النمط الأولي. ولكن عند تنفيذ مهام مثل تبديل الامتدادات الشائع، يصعب التغلب عليه من حيث البساطة وسهولة القراءة.

على الرغم من وجود العديد من الخيارات لإعادة تسمية الملفات بشكل جماعي في لينكس، إلا أن كل منها يتطلب بعض الوقت للتعود عليه. أنصح باختيار الخيار الأنسب، والتعرف عليه جيدًا قدر الإمكان، مع الاستفادة من خيار -n/–dry-run بسخاء للأدوات التي تدعمه.

إذا كنت من مُحبي التعبيرات النمطية، فمن الصعب التغلب على قوتها الهائلة، وأداة مثل rename ستفيدك على الأرجح. أما إذا كنت خبيرًا في shell، أي مُحترفًا في استخدام أحرف البدل، فربما يُعجبك شكل zmv أو mmv. لكن هذه الأدوات لا تُجدي نفعًا إلا إذا استخدمت shell Z، أو إذا ثبّتها وتعلّمت تركيبها النحوي الخاص، على التوالي.

في الوقت نفسه، يُمكن أن يكون استبدال المُعاملات قويًا بشكل مُفاجئ، وقد ترغب في تكرار إعادة تسمية الملفات بشكل مُجمّع، لذا فإن كتابة نص برمجي shell له فوائد إضافية. في النهاية، الخيار لك، وأي من هذه الخيارات أفضل من إعادة تسمية مئات الملفات يدويًا باستخدام واجهة المستخدم الرسومية. هذه هي قوة سطر الأوامر.

بدلًا من إضاعة الوقت في تعديل أسماء الملفات يدويًا، تمنحك أدوات وأوامر Linux المرونة والسرعة التي تحتاجها لتنظيم ملفاتك بكفاءة. سواء اخترت استخدام أمر rename التقليدي أو اعتمدت على أدوات أكثر تخصيصًا مثل mmv أو سكريبتات Bash، فإن النتيجة واحدة: عملية منظمة وموفرة للجهد. جرب الطرق التي ذكرناها واختر الأنسب منها لاحتياجاتك اليومية، وستلاحظ فرقًا حقيقيًا في سرعة عملك.

زر الذهاب إلى الأعلى