Какой командой удалить 15000 файлов в одной директории?
>Какой командой удалить 15000 файлов в одной директории?сам то понял, что написал?
удалить все файлы -это пожалуйста: rm -f ./*
удалить файлы по маске -это пожалуйста: rm -f ./*mp3
но именно 15000?если 15000 первых то так:
FILES_TO_KILL=$(find ./ | head -15000);for FILE in $FILES_TO_KILL do rm -f $FILE doneесли 15000 последних то меняй head на tail
все правильно человек написал
шелл на rm -f ./* будет говорить что слишком длинный списокможно так: rm -rf каталог_с_15000_ми_файлов
>все правильно человек написал
>шелл на rm -f ./* будет говорить что слишком длинный список
>
>можно так: rm -rf каталог_с_15000_ми_файловЕсли не ошибаюсь, то можно и так:
find . | xargs rm -f
тогда он разобьет слишком длинный список на части.
>>все правильно человек написал
>>шелл на rm -f ./* будет говорить что слишком длинный список
>>
>>можно так: rm -rf каталог_с_15000_ми_файлов
>
>Если не ошибаюсь, то можно и так:
>find . | xargs rm -f
>тогда он разобьет слишком длинный список на части.или так:
find . -exec rm -f {} ;:-)
>>>все правильно человек написал
>>>шелл на rm -f ./* будет говорить что слишком длинный список
>>>
>>>можно так: rm -rf каталог_с_15000_ми_файлов
>>
>>Если не ошибаюсь, то можно и так:
>>find . | xargs rm -f
>>тогда он разобьет слишком длинный список на части.
>
>или так:
>find . -exec rm -f {} ;
>
>:-)а не проще удалить директорию целиком!? если нужно чтобы она существовала,
сперва mv ее с новым_именем, затем mkdir оригинальное_имя, после чего можно rm -rf новое_имя. И никаких образцов, поисков, выборок, парсинга
и переполнения, нет?
>а не проще удалить директорию целиком!? если нужно чтобы она существовала,
>сперва mv ее с новым_именем, затем mkdir оригинальное_имя, после чего можно rm
>-rf новое_имя. И никаких образцов, поисков, выборок, парсинга
>и переполнения, нет?Я полагаю, что это можно сделать только в случае, если необходимо удалить все файлы в каталоге. Но если какие-то файлы необходимо оставить, то этот способ здесь неприменим :)
>>>>все правильно человек написал
>>>>шелл на rm -f ./* будет говорить что слишком длинный список
>>>>
>>>>можно так: rm -rf каталог_с_15000_ми_файлов
>>>
>>>Если не ошибаюсь, то можно и так:
>>>find . | xargs rm -f
>>>тогда он разобьет слишком длинный список на части.
>>
>>или так:
>>find . -exec rm -f {} ;
>>
>>:-)
>
>а не проще удалить директорию целиком!? если нужно чтобы она существовала,
>сперва mv ее с новым_именем, затем mkdir оригинальное_имя, после чего можно rm
>-rf новое_имя. И никаких образцов, поисков, выборок, парсинга
>и переполнения, нет?Не проще, если у директории установлены какие-нибудь специфические права доступа/флаги.
>>>>>все правильно человек написал
>>>>>шелл на rm -f ./* будет говорить что слишком длинный список
>>>>>
>>>>>можно так: rm -rf каталог_с_15000_ми_файлов
>>>>
>>>>Если не ошибаюсь, то можно и так:
>>>>find . | xargs rm -f
>>>>тогда он разобьет слишком длинный список на части.
>>>
>>>или так:
>>>find . -exec rm -f {} ;
>>>
>>>:-)
>>
>>а не проще удалить директорию целиком!? если нужно чтобы она существовала,
>>сперва mv ее с новым_именем, затем mkdir оригинальное_имя, после чего можно rm
>>-rf новое_имя. И никаких образцов, поисков, выборок, парсинга
>>и переполнения, нет?
>
>Не проще, если у директории установлены какие-нибудь специфические права доступа/флаги.это с каких дров если я администратор или владелец?
не проще - это только в случае удаления ПО КРИТЕРИЮ, те НЕ ВСЕГО содержимого.
>>>>>>все правильно человек написал
>>>>>>шелл на rm -f ./* будет говорить что слишком длинный список
>>>>>>
>>>>>>можно так: rm -rf каталог_с_15000_ми_файлов
>>>>>
>>>>>Если не ошибаюсь, то можно и так:
>>>>>find . | xargs rm -f
>>>>>тогда он разобьет слишком длинный список на части.
>>>>
>>>>или так:
>>>>find . -exec rm -f {} ;
>>>>
>>>>:-)
>>>
>>>а не проще удалить директорию целиком!? если нужно чтобы она существовала,
>>>сперва mv ее с новым_именем, затем mkdir оригинальное_имя, после чего можно rm
>>>-rf новое_имя. И никаких образцов, поисков, выборок, парсинга
>>>и переполнения, нет?
>>
>>Не проще, если у директории установлены какие-нибудь специфические права доступа/флаги.
>
>это с каких дров если я администратор или владелец?
>
>не проще - это только в случае удаления ПО КРИТЕРИЮ, те НЕ
>ВСЕГО содержимого.Даже если ты администратор - по умолчанию права на директорию будут 755 и без никаких флагов. Так, что их тебе потом придётся ручками ... Нет уж, find . -exec rm -f {} ; точно проще будет :-)
>>это с каких дров если я администратор или владелец?Даже если ты администратор - по умолчанию права на директорию будут 755 и без никаких флагов. Да + ещё владелец root:wheel. Так, что их тебе потом придётся ручками ... Нет уж, find . -exec rm -f {} ; точно проще будет :-)
>>>>>>>все правильно человек написал
>>>>>>>шелл на rm -f ./* будет говорить что слишком длинный список
>>>>>>>
>>>>>>>можно так: rm -rf каталог_с_15000_ми_файлов
>>>>>>
>>>>>>Если не ошибаюсь, то можно и так:
>>>>>>find . | xargs rm -f
>>>>>>тогда он разобьет слишком длинный список на части.
>>>>>
>>>>>или так:
>>>>>find . -exec rm -f {} ;
>>>>>
>>>>>:-)
>>>>
>>>>а не проще удалить директорию целиком!? если нужно чтобы она существовала,
>>>>сперва mv ее с новым_именем, затем mkdir оригинальное_имя, после чего можно rm
>>>>-rf новое_имя. И никаких образцов, поисков, выборок, парсинга
>>>>и переполнения, нет?
>>>
>>>Не проще, если у директории установлены какие-нибудь специфические права доступа/флаги.
>>
>>это с каких дров если я администратор или владелец?
>>
>>не проще - это только в случае удаления ПО КРИТЕРИЮ, те НЕ
>>ВСЕГО содержимого.
>
>Даже если ты администратор - по умолчанию права на директорию будут 755
>и без никаких флагов. Так, что их тебе потом придётся ручками
>... Нет уж, find . -exec rm -f {} ;
> точно проще будет :-):)
если я админ, права на $HOME пользователей у меня будут 711 или 700 c
chown пользователя (на серверах общего доступа с interactive-shell), остальное будет зависеть от umask, chmod и chown
публичных или скретчовых директорий - соответственно пользователю разрешено ВСЕ что не запрещено и с учетом стики-бит, так что НИКАКИХ
дополнительных извращений пользователю делать не нужно, если он навешивал
флаги - его и забота. Отсюда, проблема только одна - выборочное
удаление, в ином случае директория сносится на раз.
>>Не проще, если у директории установлены какие-нибудь специфические права доступа/флаги.
>
>это с каких дров если я администратор или владелец?В частности, на файловой системе ext2 есть такая вещь, как флаг immutable. Если он есть, то до его снятия (chattr -i somefile) никто (в том числе рут) не может удалить, переименовать, дописать в такой файл; на него нельзя сделать симлинк. Этим обожают пользоваться всякие руткиты. А каталог суть тоже файл. Но касаемо каталога я лично immutable не проверял. ;-)
>>>Не проще, если у директории установлены какие-нибудь специфические права доступа/флаги.
>>
>>это с каких дров если я администратор или владелец?
>
>В частности, на файловой системе ext2 есть такая вещь, как флаг immutable.
>Если он есть, то до его снятия (chattr -i somefile) никто
>(в том числе рут) не может удалить, переименовать, дописать в такой
>файл; на него нельзя сделать симлинк. Этим обожают пользоваться всякие руткиты.
>А каталог суть тоже файл. Но касаемо каталога я лично immutable
>не проверял. ;-)парни, ну ей богу, они, immutable или kern.securelevel, с неба валятся!?
А вобщем, всех с праздником, удачи и успехов: "Давай за нас, давай за них..." :)
Присоединяюсь(насчёт праздника :-))
Интересно, а schtazen читал этот высоконаучный тред и помоголо или это ему?
>>>>Не проще, если у директории установлены какие-нибудь специфические права доступа/флаги.
>>>
>>>это с каких дров если я администратор или владелец?
>>
>>В частности, на файловой системе ext2 есть такая вещь, как флаг immutable.
>>Если он есть, то до его снятия (chattr -i somefile) никто
>>(в том числе рут) не может удалить, переименовать, дописать в такой
>>файл; на него нельзя сделать симлинк. Этим обожают пользоваться всякие руткиты.
>>А каталог суть тоже файл. Но касаемо каталога я лично immutable
>>не проверял. ;-)
>
>парни, ну ей богу, они, immutable или kern.securelevel, с неба валятся!?
>
>А вобщем, всех с праздником, удачи и успехов: "Давай за нас, давай
>за них..." :)Cогласен! :-)
PS Для полноты картины исправлю свою ошибку:
find . -exec rm -f {} ;
надо заменить на
find . -exec rm -f {} \;
;-)
>Какой командой удалить 15000 файлов в одной директории?
а из mc пробовал)
>Какой командой удалить 15000 файлов в одной директории?#rm -rf /tmp/2002-2003
Удалил все конечно, вот только я не ожидал, что процесс может занять такое количество времени (все время убивал его)
Размер файла директории, кстати, занимал:
drwxrwxrwx 3 admin wheel 512 Jul 17 14:52 .
drwxrwxrwt 7 root wheel 512 Jul 28 14:39 ..
drwxr-xr-x 2 admin wheel 1248768 Jul 24 18:31 2002-2003
1,2 MB!
Я также не ожидал такого количества предложенных вариантов
для удаления файлов! Спасибо всем ответившим!
15000 файлов я написал для примера, конечно.