از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش تغییر نام فایل ها و دایرکتوری ها در لینوکس
سرفصلهای مطلب
تغییر نام فایل ها یکی از اساسی ترین کارهایی است که باید انجام دهید روی یک سیستم لینوکس می توانید نام فایل ها را با استفاده از یک مدیر فایل رابط کاربری گرافیکی یا از طریق تغییر نام دهید command-line terminal.
تغییر نام یک فایل بی اهمیت است، اما تغییر نام چند فایل در یک زمان می تواند یک چالش باشد و نیاز به درک کاملی از command-line ابزار.
در این آموزش روش استفاده از آن را به شما نشان خواهیم داد mv و rename دستورات تغییر نام فایل ها و دایرکتوری ها
تغییر نام فایل ها با mv فرمان
این mv دستور (کوتاه حرکت) برای تغییر نام یا انتقال فایل ها از یک مکان به مکان دیگر استفاده می شود. نحو برای mv دستور به شرح زیر است:
mv [OPTIONS] SOURCE DESTINATION
این SOURCE می تواند یک یا چند فایل، یا دایرکتوری و DESTINATION می تواند یک فایل یا دایرکتوری باشد.
چگونه mv استدلال ها را تفسیر می کند:
- اگر چندین فایل به عنوان مشخص شده باشد
SOURCE،DESTINATIONباید دایرکتوری باشد در این مورد،SOURCEفایل ها به دایرکتوری هدف منتقل می شوند. - اگر
SOURCEیک فایل است وDESTINATIONیک دایرکتوری است، فایل به آن دایرکتوری منتقل می شود. - اگر
SOURCEیک فایل است وDESTINATIONوجود ندارد، فایل تغییر نام داده است.
تغییر نام یک فایل واحد
به عنوان مثال، برای تغییر نام فایل file1.txt به عنوان file2.txt می دوید:
mv file1.txt file2.txt
تغییر نام چندین فایل با mv فرمان
این mv دستور می تواند تنها یک فایل را در یک زمان تغییر نام دهد. با این حال، می توان آن را با دستورات دیگری مانند find
یا حلقه های پوسته برای تغییر نام دسته ای.
مثال: تغییر فایلهای html به .php (Bash Loop)
for f in *.html; do
mv -- "$f" "${f%.html}.php"
done
توضیح:
- خط اول یک (
for
حلقه بزنید و از طریق لیستی از تمام فایل های لبه دار تکرار می شود.html. - خط دوم برای هر یک از موارد لیست اعمال می شود و فایل را به یک مورد جدید منتقل می کند
.htmlبا.php. قسمت${file%.html}در حال استفاده از بسط پارامتر پوسته
برای حذف.htmlبخشی از نام فایل doneپایان بخش حلقه را نشان می دهد.
مثال: تغییر نام بازگشتی با find + mv
find . -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' \;
این find دستور در حال ارسال تمام فایلهایی است که به آن ختم میشوند .html در دایرکتوری فعلی به mv یکی یکی با استفاده از -exec گزینه رشته {} نام فایلی است که در حال حاضر در حال پردازش است.
همانطور که از مثال های بالا می بینید، تغییر نام چندین فایل با استفاده از mv دستور کار آسانی نیست زیرا به دانش خوب برنامه نویسی Bash نیاز دارد.
تغییر نام فایل ها با rename فرمان
این rename دستور برای تغییر نام چندین فایل استفاده می شود. این دستور پیشرفته تر از mv زیرا به دانش اولیه عبارات منظم نیاز دارد.
چندین نسخه از آن وجود دارد rename دستور با نحو متفاوت در این آموزش، ما از نسخه Perl استفاده خواهیم کرد rename فرمان
اگر این نسخه را نصب ندارید روی سیستم شما، شما به راحتی می توانید آن را با استفاده از مدیر بسته توزیع خود نصب کنید.
-
نصب کنید
renameروی اوبونتو و دبیانsudo apt install rename -
نصب کنید
renameروی CentOS و فدوراsudo yum install prename -
نصب کنید
renameروی Arch لینوکسyay perl-rename ## or yaourt -S perl-rename
نحو برای rename دستور به شرح زیر است:
rename [OPTIONS] perlexpr files
- فایل ها با توجه به مشخص شده تغییر نام می دهند
PERL_EXPRESSIONبیان منظم می توانید در مورد عبارات منظم پرل بیشتر بخوانید اینجا
. FILESمی تواند الگوهای glob یا لیست فایل های صریح باشد.
مثال زیر همه فایل های دارای پسوند را تغییر می دهد .html به .php:
rename 's/.html/.php/' \*.html
استفاده کنید -n گزینه پیش نمایش تغییرات قبل از اعمال:
rename -n 's/.html/.php/' \*.html
خروجی چیزی شبیه به این خواهد بود:
rename(file-90.html, file-90.php)
rename(file-91.html, file-91.php)
rename(file-92.html, file-92.php)
rename(file-93.html, file-93.php)
rename(file-94.html, file-94.php)
همیشه هنگام کار پیش نمایش داشته باشید روی مجموعه فایل های بزرگ
به طور پیش فرض، rename دستور فایل های موجود را بازنویسی نمی کند. عبور کنید -f گزینه ای برای اجازه دادن به فایل های موجود برای بازنویسی:
rename -f 's/.html/.php/' \*.html
با احتیاط استفاده کنید زیرا این کار فایل ها را بدون درخواست بازنویسی می کند.
در زیر چند نمونه رایج دیگر از روش استفاده از آن آورده شده است rename دستور:
-
فاصله های موجود در نام فایل ها را با زیرخط جایگزین کنید
rename 'y/ /\_/' \* -
تبدیل نام فایل ها به حروف کوچک
rename 'y/A-Z/a-z/' \* -
تبدیل نام فایل ها به حروف بزرگ
rename 'y/a-z/A-Z/' \*
بهترین شیوه ها
- همیشه ابتدا با استفاده از rename n تست کنید
- از متغیرهای نقل قول شده برای مدیریت ایمن فضاها استفاده کنید
- برای تغییر نام پیچیده یا در مقیاس بزرگ، تغییر نام را به mv ترجیح دهید
- از اجرای تغییر نام های دسته ای به عنوان اجتناب کنید root مگر اینکه لازم باشد
نتیجه گیری
استفاده کنید mv برای تغییر نام های ساده و rename برای عملیات دسته ای کارآمد و مبتنی بر regex. تسلط بر این دستورات بهره وری شما را هنگام مدیریت فایل ها بهبود می بخشد روی سیستم های لینوکس
همچنین دستورات دیگری برای تغییر نام فایل ها در لینوکس وجود دارد، مانند mmv
. کاربران جدید لینوکس که از خط فرمان ترسیده اند می توانند از ابزارهای تغییر نام دسته ای GUI مانند the استفاده کنند دگردیسی
.
اگر سوال یا بازخوردی دارید، در کامنت بگذارید.
terminal
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1404-12-29 19:57:07

