رفع خطای -bash: /bin/rm: Argument list too long

گاهی ممکن است بخواهید تعداد خیلی زیادی فایل را حذف کنید ولی با خطای
-bash: /bin/rm: Argument list too long
مواجه شوید.
دستور rm در هر بار اجرا تعداد مشخصی فایل را می تواند حذف کند و زمانی که تعداد فایل ها از حد مشخصی بیشتر شود با خطا مواجه می شود.

برای رفع این مشکل می توانید از دستور find استفاده کنید!!
فرض کنید میخواهید تمام فایل هایی که با a شروع می شوند و در پوشه /tmp هستند را حذف کنید.

 find /tmp/ -type f -name "a*" | xargs rm
با این دستور، بدون دریافت خطا فایل ها حذف می شوند

اگر باز هم خطا دریافت کردید میتونید از کد زیر استفاده کنید:

find /tmp/ -path '/tmp/*' -name "abcd*" -type f -prune -mtime +3 | xargs rm

با اجرای دستور فوق فایل هایی که در پوشه /tmp هستند و نام آنها با abcd شروع میشود و تاریخ ویرایش آنها بیشتر از ۳ روز است حذف میشوند.

میتونید بجای mtime +3 عدد دلخواه خود را بنویسید. (مثلا mtime +10 برای فایلهایی که ویرایش آنها بیشتر از ۱۰ روز پیش بوده). یا بجای abcd نام فایل مورد نظر خود را بنویسید و یا بجای /tmp مسیر دلخواه خود را وارد نمایید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.