از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش حذف (حذف) دایرکتوری در لینوکس
سرفصلهای مطلب
لینوکس چندین روش مختلف برای حذف دایرکتوری ها ارائه می دهد. اگر از یک مدیر فایل دسکتاپ مانند Gnome’s Files یا KDE’s Dolphin استفاده می کنید، می توانید به سرعت فایل ها و دایرکتوری ها را با استفاده از رابط کاربری گرافیکی مدیر حذف کنید. فایل یا دایرکتوری را که می خواهید حذف کنید پیدا کنید، روی آن کلیک راست کرده و گزینه Delete را انتخاب کنید. اما، اگر روی یک سرور بدون هد کار می کنید یا می خواهید چندین دایرکتوری را همزمان حذف کنید، بهترین گزینه حذف پوشه ها (پوشه ها) از خط فرمان است.
در این مقاله روش حذف دایرکتوری ها در لینوکس با استفاده از rmdir
، rm
، و find
دستورات
قبل از اینکه شروع کنی
وقتی از یک مدیر فایل دسکتاپ برای حذف دایرکتوری استفاده می کنید، در واقع به سطل زباله منتقل می شود و به راحتی قابل بازیابی است. با این حال، هنگام حذف دایرکتوری ها یا فایل ها از طریق خط فرمان بسیار محتاط باشید زیرا هنگامی که دایرکتوری با استفاده از دستورات توضیح داده شده در این مقاله حذف می شود، نمی توان آن را به طور کامل بازیابی کرد.
در اکثر سیستم های فایل لینوکس، حذف یک دایرکتوری نیاز به اجازه نوشتن در فهرست و محتوای آن دارد. در غیر این صورت، با خطای «عملیات مجاز نیست» مواجه خواهید شد.
دایرکتوری هایی با فاصله در نام خود باید با یک اسلش فرار کنند (/
) شخصیت.
حذف دایرکتوری ها با rmdir
rmdir
هست یک command-line ابزاری که به شما امکان می دهد دایرکتوری های خالی را حذف کنید. زمانی که نیاز به حذف دایرکتوری دارید به کارتان می آید، اما فقط در صورتی می خواهید این کار را انجام دهید که خالی باشد، بدون اینکه محتویات آن را بررسی کنید.
برای حذف دایرکتوری با استفاده از rmdir
، دستوری را وارد کنید که به دنبال آن نام دایرکتوری را که می خواهید حذف کنید وارد کنید. به عنوان مثال، اگر می خواهید دایرکتوری به نام را حذف کنید dir1
، شما تایپ می کنید:
rmdir dir1
اگر دایرکتوری خالی نباشد، با خطای زیر مواجه می شوید:
rmdir: failed to remove 'dir1': No such file or directory
در این مورد، شما نیاز به استفاده از rm
قبل از اینکه بتوانید آن را حذف کنید، دستور دهید یا به صورت دستی محتویات دایرکتوری را حذف کنید.
حذف دایرکتوری ها با rm
rm
هست یک command-line ابزاری برای حذف فایل ها و دایرکتوری ها بر خلاف rmdir
، rm
دستور به شما امکان می دهد دایرکتوری های خالی و غیر خالی را حذف کنید.
به طور پیش فرض، وقتی بدون هیچ گزینه ای استفاده می شود، rm
دایرکتوری ها را حذف نمی کند. برای حذف یک پوشه خالی، از -d
(--dir
) را انتخاب کنید و برای حذف دایرکتوری غیر خالی و تمام محتویات آن از -r
(--recursive
یا -R
) گزینه.
به عنوان مثال، برای حذف یک فهرست به نام dir1
همراه با تمام محتویات آن، باید تایپ کنید:
rm -r dir1
اگر دایرکتوری یا فایلی در دایرکتوری محافظت از نوشتن باشد، از شما خواسته می شود که حذف را تایید کنید. برای حذف دایرکتوری بدون درخواست، از -f
گزینه:
rm -rf dir1
برای حذف چندین دایرکتوری به طور همزمان، از را فراخوانی کنید rm
دستور، به دنبال آن نام دایرکتوری ها که با فاصله از هم جدا شده اند. دستور زیر دایرکتوری های مشخص شده و محتویات آنها را حذف می کند:
rm -r dir1 dir2 dir3
این -i
گزینه می گوید rm
تا از شما بخواهد که حذف هر زیر شاخه و فایل را تأیید کنید. با این حال، اگر دایرکتوری حاوی تعداد زیادی فایل باشد، این ممکن است خسته کننده شود. در چنین مواقعی می توانید از -I
گزینه، و rm
قبل از ادامه حذف فقط یک بار از شما درخواست می کند.
rm -rI dir1
برای حذف دایرکتوری، تایپ کنید y
و ضربه بزنید Enter
.
rm: remove 1 argument recursively? y
همچنین میتوانید از برنامههای توسعهدهنده معمولی برای مطابقت و حذف چندین فهرست استفاده کنید. به عنوان مثال، برای حذف تمام دایرکتوری های سطح اول در فهرست فعلی که به پایان می رسد _bak
، از دستور زیر استفاده می کنید:
rm -r *_bak
استفاده از بسط های منظم هنگام حذف دایرکتوری ها ممکن است خطرناک باشد. توصیه می شود از ls
دستور فهرست کردن دایرکتوری ها قبل از اجرای rm
دستور دهید، بنابراین می توانید ببینید کدام دایرکتوری ها حذف می شوند.
حذف دایرکتوری ها با find
find
هست یک command-line ابزاری که به شما امکان میدهد فایلها و دایرکتوریها را بر اساس یک عبارت داده شده جستجو کنید و روی هر فایل یا دایرکتوری مطابقتشده یک عمل انجام دهید.
رایج ترین سناریو استفاده از find
دستور حذف دایرکتوری ها بر اساس یک الگو. به عنوان مثال، برای حذف تمام دایرکتوری هایی که به پایان می رسند _cache
در دایرکتوری کاری فعلی، شما باید موارد زیر را اجرا کنید:
find . -type d -name '*_cache' -exec rm -r {} +
بیایید دستور بالا را تجزیه و تحلیل کنیم:
/dir
– جستجوی بازگشتی در فهرست کاری فعلی (.
).-type d
– جستجو را به فهرست ها محدود می کند.-name '*_cache'
– فقط دایرکتوری هایی را جستجو کنید که به آنها ختم می شود_cache
-exec
– یک دستور خارجی را با آرگومان های اختیاری اجرا می کند. در این مورد، یعنیrm -r
.{} +
– فایل های پیدا شده را به انتهای آن اضافه می کندrm
فرمان
حذف همه دایرکتوری های خالی
برای حذف همه دایرکتوری های خالی در درخت دایرکتوری، باید اجرا کنید:
find /dir -type d -empty -delete
در اینجا توضیحی در مورد گزینه های استفاده شده است:
/dir
– جستجوی بازگشتی در/dir
فهرست راهنما.-type d
– جستجو را به فهرست ها محدود می کند.-empty
– جستجو را فقط به دایرکتوری های خالی محدود می کند.-delete
– تمام دایرکتوری های خالی یافت شده در زیردرخت را حذف کنید.-delete
می تواند فقط دایرکتوری های خالی را حذف کند.
استفاده کنید -delete
گزینه با احتیاط شدید خط فرمان find به عنوان یک عبارت ارزیابی می شود و اگر آن را اضافه کنید -delete
گزینه اول، دستور هر چیزی را که در زیر نقاط شروعی که مشخص کرده اید حذف می کند.
همیشه ابتدا دستور را بدون آن تست کنید -delete
گزینه و استفاده -delete
به عنوان آخرین گزینه
/bin/rm: فهرست استدلال خیلی طولانی است
این پیغام خطا هنگام استفاده از rm
دستور حذف دایرکتوری که حاوی تعداد زیادی فایل است. این اتفاق میافتد زیرا تعداد فایلها از محدودیت سیستم در اندازه آرگومان خط فرمان بزرگتر است.
چندین راه حل مختلف برای این مشکل وجود دارد. به عنوان مثال، شما می توانید cd
به دایرکتوری بروید و زیر شاخه ها را یکی یکی حذف کنید، چه به صورت دستی یا با استفاده از یک حلقه.
ساده ترین راه حل این است که ابتدا تمام فایل های داخل دایرکتوری را با استفاده از آن حذف کنید find
دستور دهید و سپس دایرکتوری را حذف کنید:
find /dir -type f -delete && rm -r /dir
نتیجه
با rm
و find
شما می توانید دایرکتوری ها را بر اساس معیارهای مختلف به سرعت و کارآمد حذف کنید.
حذف دایرکتوری ها ساده و آسان است process، اما باید مراقب باشید که داده های مهم را حذف نکنید.
اگر سوال یا بازخوردی در مورد استفاده از این دستورات دارید، لطفاً نظرات خود را بیان کنید.
terminal
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-28 01:37:03