rm و rmdir هر دو ابزارهای خط فرمان داخلی هستند که برای حذف دایرکتوریها مفید خواهند بود. هر دو بخشی از ابزارهای اصلی GNU بهشمار میآیند که به کاربران اجازه میدهند فضای دیسک خود را با حذف دایرکتوریهایی که دیگر به آنها نیازی ندارند، تمیز کند. در حالی که هر دو ابزار کمکی اجازه حذف دایرکتوریها را میدهند، rmdir فقط اجازه حذف «دایرکتوریهای خالی» را خواهد داد که این دستور از حذف تصادفی دایرکتوریهای غیرخالی جلوگیری میکند.
اگر سعی کنید از دستور rmdir برای حذف یک دایرکتوری غیرخالی استفاده کنید، پیغام خطای «Directory not empty» برای شما ارسال میشود. اگر میخواهید دایرکتوری غیرخالی را حذف کنید، میتوانید از یکی دیگر از دستورات لینکوس به نام دستور rm استفاده کنید. به این نکته توجه داشته باشید که وقتی یک فایل یا دایرکتوری با استفاده از rm یا rmdir حذف میشود، به جای ارسال به سطل زباله، بلافاصله از سیستم پاک خواهد شد؛ بنابراین، هنگام استفاده از این دستورات باید مراقب باشید، زیرا نمیتوانید فایلها و دایرکتوریهای حذفشده را بدون داشتن بکآپ از آنها، بازیابی کنید. در این مقاله قصد داریم نحوه استفاده از دستور rmdir را برای حذف دایرکتوریها در لینوکس به همراه چند مثال توضیح دهیم.
نحوه استفاده از دستور rmdir در لینوکس
نحوه استفاده از دستور rmdir بهصورت زیر است:

برای راهاندازی ترمینال، روی تب Activities در سمت چپ بالای صفحه کلیک کنید. سپس terminal یا shell را تایپ کنید تا آن را در منوی برنامهها جستجو کند؛ همچنین، میتوانید از کلیدهای پیش فرض Ctrl-Alt-T استفاده کنید.
یک دایرکتوری را با استفاده از Rmdir حذف کنید
برای حذف یک دایرکتوری خالی، rmdir و نام دایرکتوری یا مسیر دایرکتوری را به صورت زیر تایپ کنید:

این دستور فقط در صورتی که دایرکتوری “~/Documents/myfiles” خالی باشد، آن را حذف میکند. اگر دایرکتوری مورد نظر خالی نبوده و حاوی چند فایل باشد، دستور rmdir پیغام خطای «Directory not empty » را ارسال میکند.
چندین دایرکتوری را با استفاده از Rmdir حذف کنید
شما میتوانید چندین دایرکتوری را بهطور همزمان با دستور rmdir حذف کنید. فرض کنید سه دایرکتوری با نامهای «~/Documents/myfiles»، «images» و «games» را میخواهید حذف کنید. دستور بهصورت زیر خواهد بود:

این دستور دایرکتوریهای “~/Documents/myfiles” ، “images” و “games”را تنها در صورتی حذف میکند که خالی باشند.
Verbose Output
برای اینکه ببینید هنگام استفاده از دستور rmdir چه اتفاقی افتاده است، از گزینه -v با دستور rmdir استفاده کنید.

در مثالهای بعدی، از گزینه -v زیاد استفاده میکنیم تا ببینیم وقتی دستور rmdir را روی یک دایرکتوری اجرا میکنیم در پسزمینه چه اتفاقی خواهد افتاد.
پیام عدم موفقیت دایرکتوری غیرخالی را رد کنید
همانطور که در بالا توضیح داده شد، rmdir دایرکتوریهای غیرخالی را حذف نمیکند. درعوض، پیام «Directory not empty» را نمایش میدهد. گزینه –ignore-fail-on-non-empty به شما این امکان را میدهد تا پیام نشان داده شده را نادیده بگیرید. با این حال، توجه داشته باشید که هنوز دایرکتوری غیرخالی را حذف نمیکند.
فرض کنید میخواهیم سه دایرکتوری با نامهای «games»، «videos» و «images» را حذف کنیم، جایی که دایرکتوریهای «games» و «images» خالی هستند در حالی که دایرکتوری «videos» خالی نیست.

در خروجی زیر مشاهده میکنید که دستور rmdir دایرکتوریهای “games” و “images” را حذف کرده است؛ اما، در حذف پوشه “videos” موفق عمل نکرده و خطای “Directory not empty” را نمایش میدهد.

شما میتوانید برای رد کردن خطای نمایش داده شده با استفاده از دستور rmdir و همچنین گزینه –ignore-fail-on-non-empty این کار را انجام دهید. با این حال، دایرکتوری غیرخالی حذف نشده است.


دایرکتوریها و والد آنها را حذف کنید
با استفاده از دستور rmdir، میتوانید سلسله مراتب دایرکتوریها را نیز حذف کنید. به این معنی که میتوانید دایرکتوریها و والد آنها را نیز حذف کنید؛ بهطور مثال فرض کنید که ما یک سلسله مراتب از سه دایرکتوری، docs، myfiles و files داریم. بهطوری که docs در داخل myfiles و myfiles داخل files قرار دارند.

اکنون برای حذف سلسله مراتب، باید دایرکتوری و زیرشاخههای آن را با استفاده از این دستور حذف کنید:

شما میتوانید از گزینه -p با دستور rmdir برای حذف سلسله مراتب به صورت زیر استفاده کنید:

این دستور دایرکتوری “docs” را به همراه دایرکتوریهای والد آن “myfiles” و “files” حذف میکند. گزینه -p به فرمان rmdir میگوید که از دایرکتوری هدف “docs” شروع کند و مراحل برگشت برای حذفکردن را به والدین خودش برساند.
به این نکته توجه داشته باشید که دایرکتوری files نباید چیزی غیر از دایرکتوری myfiles و دایرکتوری myfiles نباید چیزی غیر از دایرکتوری docs داشته باشد.

برای مشاهده اطلاعات بیشتر در مورد دستور rmdir، میتوانید با استفاده از صفحه man و به کمک دستور زیر آن را مشاهده کنید:

پس از اتمام، q را فشار دهید تا از صفحه اجراشده، خارج شوید.
از طرف دیگر میتوانید از دستور زیر برای مشاهده راهنمای دستور rmdir استفاده کنید.

همانطور که قبلا نیز به آن اشاره کردیم شما میتوانید برای حذف دایرکتوریهای غیرخالی از دستور rm استفاده کنید. به منظور این کار به کد زیر توجه کنید:

کلام آخر
در این مقاله به آموزش نحوه کار با دستور rmdir در سرور لینوکس پرداختیم. شما به کمک این دستور میتوانید فایلها و دایرکتوریهایی که موردنیاز نیستند را حذف کنید؛ علاوه بر این، این دستور از حذف شدن دایرکتوریهایی که دارای پوشه و فایل هستند جلوگیری میکند.
سوالات متداول
چگونه از دستور rmdir استفاده کنم؟
برای حذف یک دایرکتوری خالی، از rmdir یا rm -d و به دنبال آن نام دایرکتوری استفاده کنید:
1 2 | rm -d dirname rmdir dirname |
برای حذف دایرکتوریهای غیرخالی و تمام فایلهای موجود در آنها، از دستور rm با گزینه -r استفاده کنید: rm -r dirname
تفاوت بین دستورات mkdir و rmdir در چیست؟
دستور mkdir برای ایجاد (یا ساختن) دایرکتوری، مورد استفاده قرار میگیرد. شما نام دایرکتوری را بهعنوان آرگومان وارد میکنید. دستور rmdir برای حذف دایرکتوریها استفاده میشود.
چگونه همه فایلهای یک دایرکتوری در لینوکس را حذف کنیم؟
استفاده از دستور rm برای حذف تمام فایلهای یک دایرکتوری.
در ابتدا برنامه ترمینال را باز کنید.
برای حذف همه چیز در دایرکتوری: rm /path/to/dir/* را اجرا کنید.
برای حذف همه زیرشاخهها و فایلها: rm -r /path/to/dir/* را اجرا کنید.
چگونه یک پوشه را حذف کنم؟
روی پوشهای که میخواهید حذف کنید کلیک راست کرده و گزینه Delete Folder را انتخاب کنید. برای انتقال پوشه و محتویات آن به پوشه Deleted Items روی Yes کلیک کنید. وقتی پوشه Deleted Items را خالی میکنید، همه چیز در آن (از جمله پوشههایی که حذف کردهاید) برای همیشه پاک میشوند.