خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


آموزش حذف دایرکتوری(فولدر) در لینوکس

آموزش حذف دایرکتوری(فولدر) در لینوکس
چندین راه مختلف برای حذف دایرکتوری ها در سیستم های لینوکس وجود دارد. اگر از یک فایل منیجر دسکتاپ مانند Gnome's Files یا KDE's Dolphin استفاده می کنید، می توانید فایل ها و دایرکتوری ها را با استفاده از GUI حذف کنید. اما، اگر روی یک سرور که فاقد GUI است کار کنید، یا می خواهید چندین دایرکتوری یا فولدر را همزمان حذف کنید، بهترین گزینه حذف، استفاده از دستورات خط فرمان است.

نرم افزار سامانه مودیان راهکار
در این مقاله نحوه حذف دایرکتوری ها در لینوکس با استفاده از دستورات rmdir، rm و find را توضیح خواهیم داد.


هنگام حذف دایرکتوری با استفاده از یک فایل منیجر، دایرکتوری در واقع به Trash منتقل می شود و به راحتی قابل بازیابی است. اما هنگام حذف فایل ها یا دایرکتوری ها از طریق خط فرمان بیشتر احتیاط کنید زیرا هنگامی که دایرکتوری با استفاده از دستورات توضیح داده شده در این مقاله حذف شود، نمی توان آن را به طور کامل بازیابی کرد.
در اکثر فایل سیستم های لینوکس حذف یک دایرکتوری نیاز به مجوز write در دایرکتوری و محتوای آن دارد. در غیر این صورت، با خطای Operation not permitted مواجه خواهید شد.

Removing Directories with rmdir

حذف دایرکتوری از طریق دستور rmdir را در بخش نخست مورد بررسی قرار می دهیم. دستور rmdir یک ابزار خط فرمان برای حذف دایرکتوری های خالی است. rmdir برای زمانی مناسب است که بخواهید یک دایرکتوری را فقط در صورت خالی بودن آن حذف کنید، بدون اینکه نیازی به بررسی خالی بودن یا نبودن دایرکتوری باشد. برای حذف دایرکتوری با rmdir، ابتدا دستور rmdir را تایپ کرده و در ادامه نام دایرکتوری را که می خواهید حذف کنید تایپ کنید. به عنوان مثال، برای حذف دایرکتوری به نام dir1 از دستور زیر استفاده کنید:

rmdir dir1

اگر دایرکتوری خالی نباشد، با خطای زیر مواجه می شوید:

rmdir: failed to remove 'dir1': No such file or directory

در این مورد، قبل از اینکه بتوانید آن را حذف کنید، باید از دستور rm استفاده کنید یا به صورت دستی محتویات دایرکتوری را حذف کنید.

Removing Directories with rm

حذف دایرکتوری از طریق دستور rm را در بخش دوم مورد بررسی قرار می دهیم. rm یک ابزار خط فرمان برای حذف فایل ها و دایرکتوری ها است. برخلاف rmdir، دستور rm می تواند دایرکتوری های خالی و غیرخالی را حذف کند. به طور پیش فرض، وقتی بدون هیچ گزینه ای استفاده می شود، rm دایرکتوری ها را حذف نمی کند. برای حذف یک دایرکتوری خالی، از گزینه d- استفاده کنید و برای حذف یک دایرکتوری که خالی نیست و دارای محتویاتی است، از گزینه r- استفاده کنید تا فولدر و محتویات آن حذف شوند.
به عنوان مثال برای حذف دایرکتوری به نام dir1 به همراه تمام محتویات آن از دستور زیر استفاده کنید:

rm -r dir1

اگر دایرکتوری یا فایلی در دایرکتوری write-protected باشد، از شما خواسته می شود که حذف را تایید کنید. رای حذف یک دایرکتوری بدون درخواست حذف، از گزینه f- استفاده کنید:

rm -rf dir1

برای حذف چندین دایرکتوری به طور همزمان، دستور rm را فراخوانی و اجرا کنید و به دنبال آن نام دایرکتوری ها با فاصله از هم باید جدا شده باشد. دستور زیر دایرکتوری ها و محتویات آنها را هم حذف می کند.

rm -r dir1 dir2 dir3

گزینه i- به rm می گوید تا از شما بخواهد که حذف هر ساب دایرکتوری و فایل را تأیید کنید. اگر دایرکتوری حاوی تعداد زیادی فایل باشد بدیهی است که این قضیه کمی آزار دهنده خواهد شد. بنابراین می‌توانید از گزینه I- استفاده کنید که فقط یک بار قبل از ادامه حذف از شما درخواست ‌کند.

rm -rI dir1

سپس برای حذف دایرکتوری در پیغام نمایش داده شده، y را تایپ و Enter کنید.

rm: remove 1 argument recursively? y

همچنین می‌توانید از افزونه‌های معمولی برای مطابقت و حذف چندین دایرکتوری استفاده کنید. به عنوان مثال، برای حذف تمام دایرکتوری های سطح اول در دایرکتوری جاری که با bak_ ختم می شود، از دستور زیر استفاده کنید:

rm -r *_bak

استفاده از regular expansion هنگام حذف دایرکتوری ها شاید خطرناک باشد. توصیه می شود ابتدا فهرستی از دایرکتوری ها را با دستور ls لیست کرده تا بتوانید قبل از اجرای دستور rm ببینید چه دایرکتوری هایی حذف می شوند.

Removing Directories with find

حذف دایرکتوری از طریق دستور find در بخش سوم این مقاله مورد بررسی قرار می دهیم. البته در خصوص نحوه استفاده از دستور find در لینوکس رد یک مقاله جداگانه صحبت کرده ایم ک هدر این خصوص می توانید به لینک زیر مراجعه کنید:


توجه داشته باشید ک هبا دستور find هم فقط می توانید دایرکتوری ها و فولدرهای خالی را حذف کنید. برای حذف همه دایرکتوری های خالی در یک فولدر یا دایرکتوری مشخص شده، از دستور زیر می توانید استفاده کنید:

find /dir -type d -empty -delete

ما در ادامه توضیحاتی را برای گزینه های موجود در دستور فوق ارائه خواهیم کرد.
Dir/ بصورت بازگشتی در دایرکتوری dir/ را سرچ می کند.
type d- جستجو را به دایرکتوری ها محدود می کند.
Empty- جستجو را فقط به دایرکتوری های خالی محدود می کند. و delete- هم تمام دایرکتوری های خالی یافت شده در دایرکتوریdir/ را حذف می کند. delete- فقط می توانید دایرکتوری های خالی را حذف کند.
همیشه اول دستور را بدون گزینه delete- تست کنید و وقتی از نتیجه کار مطمئن شدید، سپس از دستور delete- استفاده کنید.

این پیام خطا زمانی ظاهر می شود که از دستور rm برای حذف دایرکتوری که حاوی تعداد زیادی فایل است استفاده می کنید. چندین راه حل مختلف برای این مشکل وجود دارد. به عنوان مثال، می توانید به دایرکتوری مورد نظر با دستور cd رفته و به صورت دستی یا با استفاده از یک loop، ساب دایرکتوری ها را یکی یکی حذف کنید.
/bin/rm: Argument list too long

ساده ترین راه حل این است که ابتدا تمام فایل های داخل دایرکتوری را با دستور find حذف کنید و سپس دایرکتوری را حذف کنید:

find /dir -type f -delete && rm -r /dir

نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز