تغییر نام فایلها یکی از کارهای رایج در هر سیستم عاملی است. لینوکس ابزارها و عبارات خط فرمانی را برای کمک به شما در انجام کارآمد این کار فراهم میکند. میتوانید از mvدستور “`، ابزاری داخلی که با سیستمهای لینوکس ارائه میشود، یا از ابزار “` استفاده کنید rename. این یک دستور پیشرفته است که از عبارات پرل برای تغییر نام دستهای فایلها استفاده میکند.
بیایید نحوه استفاده از این ابزارهای CLI برای تغییر نام فایلها را بررسی کنیم.
نحوه تغییر نام فایلها با استفاده از دستور mv #
این mvدستور مخفف کلمه “move” است. این دستور به طور پیشفرض در تمام توزیع های لینوکس وجود دارد و دو هدف را دنبال میکند: جابجایی و تغییر نام فایلها. تمرکز ما بر تغییر نام فایلها خواهد بود.
Syntax #
این mvدستور از سینتکس زیر پیروی میکند:
mv oldfilename newfilename
که در آن: oldfilenameنام فایل فعلی که قرار است تغییر نام یابد، newfilenameنام جدیدی است که فایل فعلی اتخاذ خواهد کرد.
حالا بیایید نگاهی به mvدستور در عمل بیندازیم.
تغییر نام یک فایل واحد #
برای تغییر نام یک فایل، نام اصلی فایل و به دنبال آن نام جدید را وارد کنید. برای مثال، برای تغییر نام
sample_1.txtبرای sample_2.txtاجرا:
mv sample_1.txt sample_2.txt

اگر فایلی که قرار است تغییر نام داده شود در یک دایرکتوری جداگانه قرار دارد، مطمئن شوید که مسیر آن با نام فایل جدید مطابقت دارد. در این مثال، ما نام را file1.txtکه در دایرکتوری قرار دارد ~/data/reports، به تغییر میدهیم file2.txt.

تغییر نام چندین فایل #
این mvدستور فقط برای تغییر نام یک فایل طراحی شده است. با این حال، میتوانید یک حلقه for را درون یک اسکریپت پوسته بگنجانید تا پسوند فایلها را از یک نوع پسوند به نوع دیگر تغییر دهید.
برای نشان دادن این موضوع، با استفاده از ویرایشگر متن خط فرمان مورد نظر خود، یک اسکریپت پوسته جدید ایجاد کنید.
nano myscript.sh
سپس از اسکریپت حلقه for همانطور که نشان داده شده است استفاده کنید. در این مثال، حلقه تمام فایلهای با .phpپسوند را بررسی کرده و پسوند را به تغییر میدهد .html.
#!/bin/bash
for i in *.php; do
mv -- "$i" "${i%.php}.html"
done
بیایید این اسکریپت پوسته را تجزیه و تحلیل کنیم:
- خط اول،
#!/bin/bashهدر shebang است - این
for i in *.php; doخط در تمام فایلهایی که.phpپسوند فایل یکسانی دارند، تکرار میشود. - این
mv -- "$i" "${i%.php}.htmlخط،.phpپسوند را با.htmlپسوند تمام فایلهای PHP جایگزین میکند. - این
doneخط به سادگی پایان اسکریپت پوسته را مشخص میکند.
از فایل خارج شوید.
در مرحله بعد، با اختصاص دادن مجوز اجرا ، اسکریپت پوسته را قابل اجرا کنید .
sudo chmod +x /path/to/file/script.sh
برای اجرای اسکریپت، دستور زیر را اجرا کنید. مطمئن شوید که مسیر اسکریپت درست است.
./script.sh
از خروجی، نام تمام .phpفایلها به … تغییر یافته است..html

نحوه تغییر نام فایلها در لینوکس با استفاده از renameدستور #
این renameدستور، یک دستور پیشرفته برای تغییر نام دستهای فایلها است. این دستور از عبارات Perl استفاده میکند که روشی همهکاره برای تغییر نام چندین فایل و دایرکتوری ارائه میدهد. این دستور عملیات مختلفی از جمله تغییر پسوند فایلها از یک نوع پسوند به نوع دیگر، تغییر اندازه حروف (از حروف کوچک به حروف بزرگ و برعکس) و حذف بخشهایی از نام فایلها را انجام میدهد.
نصب دستور تغییر نام #
به طور پیشفرض، این renameدستور در لینوکس نصب نشده است. خوشبختانه، میتوانید آن را با استفاده از مدیر بسته توزیع خود به شرح زیر نصب کنید:
روی اوبونتو / دبیان
sudo apt install rename -y
روی راکی لینوکس / RHEL / فدورا
sudo dnf install rename -y
روی آرچ لینوکس / مانجارو
sudo pacman -S rename -y
مثال های دستور تغییر نام #
این بخش به روشهای مختلف اجرای دستور تغییر نام فایلها میپردازد . این دستور از عبارات جایگزین و ترجمهrename Perl برای تغییر نام فایلها استفاده میکند.
Syntax #
دستور تغییر نام (rename) از ساختار نحوی زیر پیروی میکند:
rename [options] 's/[pattern]/[replacement]/' [filename]
کجا:
options– به پرچمهای دستور اختیاری اشاره دارد که اجرای یک دستور را تغییر میدهند. s– یک عبارت جایگزین است که جایگزین یک رشته(ها) میشود. [pattern]– بخشی از نام فایل که باید جایگزین شود. [replacement]– رشتهای که جایگزین بخش مشخص شده از نام فایل فعلی شده است. [filename]– نام فایل
در سینتکس ارائه شده، دستور rename از عبارت جایگزین مشخص شده توسط sکاراکتر برای جایگزینی رشته مشخص شده توسط [pattern]بخش با خود [replacement]بخش استفاده میکند.
تبدیل پسوند فایل #
مثال زیر نحوه تغییر یا تبدیل فایلها با .confپسوند را نشان میدهد .txt. برای مثال، ما سه فایل با .confپسوند داریم.
rename 's/\.conf$/.txt/' *.conf

پس از اجرای دستور، پسوند فایلها از .confبه تبدیل شده است .txt.
تغییر نام بخشی از نام فایل #
این renameدستور همچنین به شما امکان میدهد بخشی از نام فایل را تغییر نام دهید. برای مثال، دستور نشان داده شده در تمام فایلهایی که پسوند دارند، را exampleبا جایگزین میکند .sample.txt
rename -v 's/example/sample/' *.txt
در اینجا، sگزینه، رشته را exampleبا جایگزین میکند sample. این -vگزینه مخفف verbose (به معنی فعل) است و عملیاتی را که انجام میشود چاپ میکند.

حذف بخشی از نام فایل #
شما میتوانید بخشی از نام فایل را با حذف بخش جایگزین در سینتکس حذف کنید. دستور زیر نام فایلها را administrator1.txtبه ترتیب administrator2.txtبه admin1.txtو تغییر میدهد admin2.txt. این istratorبخش با حذف بخش جایگزین در سینتکس دستور حذف میشود.
rename -v 's/istrator//' *.txt

تبدیل حروف کوچک به حروف بزرگ #
عبارت translatePerl به شما امکان میدهد رشتهای از کاراکترها را با استفاده از yنمادگذاری، کاراکتر به کاراکتر تبدیل کنید. این کار به صورت زیر انجام میشود:
برای مثال، دستور زیر کاراکترهای تمام نام فایلهای متنی را از حروف کوچک به حروف بزرگ تبدیل میکند.
rename -v 'y/a-z/A-Z/' *.txt

تبدیل حروف بزرگ به کوچک #
برعکس، میتوانید با معکوس کردن ترتیب از y/a-z/A-Z/تا ، کاراکترهای حروف بزرگ را به حروف کوچک تبدیل کنید y/A-Z/a-z/.
دستور زیر تمام حروف بزرگ نام فایل را به حروف کوچک تبدیل میکند. توجه داشته باشید که پسوند فایل نیز با حروف بزرگ نوشته میشود.
rename -v 'y/A-Z/a-z/' *.TXT

نتیجه گیری #
در این آموزش، روشهای مختلف تغییر نام فایلها در سیستم لینوکس را بررسی کردیم. ما با دستور mv شروع کردیم که در درجه اول برای تغییر نام اولیه فایلها استفاده میشود. بعداً دستور rename را بررسی کردیم، ابزاری پیشرفته برای تغییر نام چندین فایل با استفاده از عبارات جایگزین و ترجمه Perl.
برخلاف این mvدستور که عملیات تغییر نام فایل ساده را انجام میدهد، این renameدستور از تکنیکهای پیشرفتهای برای تغییر نام فایلها استفاده میکند، از جمله تبدیل پسوند فایلها، تغییر نام و حذف بخشهایی از نام فایلها و تبدیل حروف بزرگ به کوچک و برعکس. بین این دو ابزار CLI، احتمالاً بیشتر از دستور mv استفاده خواهید کرد، مگر اینکه هنگام انجام تغییر نام دستهای پیشرفته فایلها باشید.
