Изтриване на много файлове под GNU/Linux

67396-delete-keyСлучвало ли ви се е в папка да имате 50 000 директории или файлове и да решите, че трябва да ги изтриете. Ако решите да ги изтриете всичките (rm -fr *) ще ви излезе съобщение:

-bash: /bin/rm: Argument list too long

Това се получава защото има прекалено много файлове (или максимален размер на аргументите)
Ето го и ограничението от kernel_limits:

egrep ARG_MAX /usr/include/linux/limits.h
#define ARG_MAX 131072 /* # bytes of args + environ for exec() */

Решение 1:
find $PWD -exec rm -fr {} \;

Решение 2:
Изтриване на папката и след това ново създаване
rm -fr ufiles;mkdir ufiles;

Хубавото на Решение 1 е, че ако желаете да изтриете конкретни файлове може да използвате -name, а именно:
find $PWD -name "martin.*" -exec rm {} \;

Posted in:

2 отговора

  1. Аватарът на Стелко
    Стелко

    Винаги когато ми се наложи – знам, че тук мога да погледна 🙂

Logged in as {{omniform_current_user_display_name}}. Edit your profile. Log out? Required fields are marked *

Your email address will not be published. Required fields are marked *

Comments are closed.

You must be logged in to post a comment.