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

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

علی مرادی

تغییر نام دایرکتوری ها یکی از اساسی ترین عملیاتی است که اغلب برای انجام آنها بر روی سیستم لینوکس نیاز دارید. می توانید دایرکتوری ها را از مدیر پرونده GUI با چند کلیک تغییر دهید و یا با استفاده از ترمینال خط فرمان. در این مقاله نحوه تغییر نام دایرکتوری ها با استفاده از خط فرمان توضیح داده شده است.

در ادامه با ما در شتابان هاست همراه باشید.

تغییر نام دایرکتوری ها:

در سیستم عامل های لینوکس و یونیکس ، می توانید از دستور mv برای تغییر نام یا انتقال فایل ها و دایرکتوری ها از یک مکان به مکان دیگر استفاده کنید.

نحو دستور mv برای جابجایی دایرکتوری ها به شرح زیر است:

mv [OPTIONS] source destination

به عنوان مثال ، برای تغییر نام دایرکتوری dir1 به عنوان dir2 ، باید اجرا شود:

mv dir1 dir2

هنگام تغییر نام دایرکتوری ها ، باید دقیقاً دو آرگومان را به دستور mv مشخص کنید. اولین استدلال نام فعلی دایرکتوری و دومین نام جدید است.
توجه به این نکته حائز اهمیت است که اگر dir2 قبلاً وجود داشته باشد ، dir1 به پوشه dir2 منتقل می شود.

برای تغییر نام دایرکتوری که در فهرست کار فعلی نیست ، باید مسیر مطلق یا نسبی را مشخص کنید:

mv /home/user/dir1 /home/user/dir2

تغییر نام چندین دایرکتوری بصورت همزمان:

دستور mv می تواند فقط یک دایرکتوری را تغییر نام دهد. با این حال ، می توان آن را در رابطه با دستورات دیگری مانند find یا حلقه های داخلی برای تغییر نام چندین فایل به طور همزمان استفاده کرد.

در اینجا مثالی وجود دارد که نشان می دهد چگونه از Bash برای حلقه استفاده کنید تا تاریخ فعلی را به نام تمام دایرکتوریهای موجود در فهرست فعلی اضافه کنید:

for d in *; do 
  if [ -d "$d" ]; then
    mv -- "$d" "${d}_$(date +%Y%m%d)"
  fi
done

بیایید خط کد را به صورت خطی آنالیز کنیم:

  • خط اول یک حلقه ایجاد می کند و از طریق لیستی از تمام پرونده ها تکرار می شود.
  • گر خط دایرکتوری باشد ، خط دوم بررسی می کند.
  • خط سوم تاریخ جاری را در هر فهرست قرار می دهد.

در اینجا یک راه حل با همان کار با استفاده از mv در ترکیب با find ارائه شده است:

find . -mindepth 1 -prune -type d -exec sh -c 'd="{}"; mv -- "$d" "${d}_$(date +%Y%m%d)"' \;

دستور find با استفاده از گزینه -exec تمام دایرکتوری ها را یک به یک به mv منتقل می کند. رشته {} نام دایرکتوری است که در حال پردازش است.

همانطور که از نمونه ها می بینید ، تغییر نام چندین دایرکتوری با mv کار ساده ای نیست زیرا نیاز به دانش خوبی در برنامه نویسی Bash دارد.

تغییر نام چندین دایرکتوری باrename :

دستور rename  برای تغییر نام چندین فایل و فهرست استفاده می شود. این دستور از mv پیشرفته تر است زیرا نیاز به دانش اساسی در مورد عبارات منظم دارد.

دو نسخه از دستور تغییر نام با نحو مختلف وجود دارد. ما از نسخه Perl دستور تغییر نام استفاده خواهیم کرد. پرونده ها مطابق با عبارت معمولی perl داده شده تغییر نام داده می شوند.

مثال زیر نحوه جایگزینی فضاها به نام کلیه دایرکتوریهای موجود در فهرست فعلی را نشان می دهد:

find . -mindepth 1 -prune -type d | rename 'y/ /_/'

برای اینکه در قسمت امن قرار داشته باشید ، گزینه -n را برای تغییر نام تغییر دهید تا چاپ نامهای دایرکتوری ها بدون تغییر نام در آنها تغییر کند.

در اینجا مثال دیگری وجود دارد که نشان می دهد چگونه می توانید نام های فهرست را به حروف کوچک تبدیل کنید:

find . -mindepth 1 -prune -type d | rename 'y/A-Z/a-z/'

جمع بندی:

ما به شما نشان داده ایم كه چگونه از دستورات mv برای تغییر نام دایرکتوری ها استفاده کنید.
اگر هر گونه سؤال یا بازخورد دارید ، می توانید نظر خود را اعلام کنید.

امیدوارم این مقاله براتون مفید بوده باشه.

ما رو تو شتابان هاست دنبال کنید. 🙂

برچسب ها: دستورات لینوکس