وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

روش تغییر نام فایل ها و دایرکتوری ها در لینوکس

0 0
زمان لازم برای مطالعه: 4 دقیقه


تغییر نام فایل ها یکی از اساسی ترین کارهایی است که باید انجام دهید روی یک سیستم لینوکس می توانید نام فایل ها را با استفاده از یک مدیر فایل رابط کاربری گرافیکی یا از طریق تغییر نام دهید 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 پایان بخش حلقه را نشان می دهد.
پیشنهاد می‌کنیم بخوانید:  روش نصب TeamViewer روی CentOS 8

مثال: تغییر نام بازگشتی با 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 یا لیست فایل های صریح باشد.
پیشنهاد می‌کنیم بخوانید:  ONLYOFFICE Docs را نصب کنید روی اوبونتو 22.04 و Oracle DB را متصل کنید

مثال زیر همه فایل های دارای پسوند را تغییر می دهد .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 استفاده کنند دگردیسی
.

اگر سوال یا بازخوردی دارید، در کامنت بگذارید.

تغییر نام mv
terminal
برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1404-12-29 19:57:07

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید