تغییر نام دایرکتوری ها یکی از اساسی ترین عملیاتی است که اغلب برای انجام آنها بر روی سیستم لینوکس نیاز دارید. می توانید دایرکتوری ها را از مدیر پرونده 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 برای تغییر نام دایرکتوری ها استفاده کنید.
اگر هر گونه سؤال یا بازخورد دارید ، می توانید نظر خود را اعلام کنید.
امیدوارم این مقاله براتون مفید بوده باشه.
ما رو تو شتابان هاست دنبال کنید. 🙂