Удаление файлов во всех каталогах в каталоге

Мне недавно нужно было удалить все файлы в ~ 40 каталогах, которые были в родительском каталоге, без удаления самих каталогов. Я закончил это вручную, но есть ли более эффективный способ сделать это? То есть, есть ли команда linux, которая может это сделать?

Для более четкого представления о том, что я имею в виду:

HomeDirectoryName -> subdirectoryName -> 4 файла информации о симуляции

У меня был вышеуказанный путь, за исключением 40 подкаталогов, каждый из которых имеет 4 файла моделирования. Мне нужно было удалить все файлы информации моделирования без удаления каталогов подкаталога.

Это может быть невозможно, поскольку я искал везде около часа, прежде чем, наконец, решил сделать это вручную.

1
задан 27 October 2016 в 01:15

2 ответа

из родительского каталога запустите

find -type f -exec rm {} \;

для удаления каждого файла отдельно или, альтернативно,

find -type f -exec rm {} +

, чтобы поочередно вставлять несколько файлов в rm.

Для энтузиастов python вот еще одно решение:

 python -c 'import os;[os.unlink(os.path.join(r,f)) for r,d,fs in os.walk(".") for f in fs]'
3
ответ дан 23 May 2018 в 04:47
  • 1
    Если вы не используете -delete, вы должны хотя бы использовать -exec rm -- {} +, чтобы find не запускал новый rm для каждого файла. – muru 27 October 2016 в 04:38
  • 2
    @muru, который можно сделать для скорости, если в нем много файлов в диапазоне от тысяч, но в диапазоне от нескольких сотен файлов это не будет иметь большого значения. – Sergiy Kolodyazhnyy 27 October 2016 в 04:55
  • 3
    Кажется, вы особенно любите медленные команды. – muru 27 October 2016 в 04:56
  • 4
    @muru хорошо, я не русский, поэтому я не спешу;) – Sergiy Kolodyazhnyy 27 October 2016 в 04:56

Из родительского каталога

rm */*

удаляется 160 информационных файлов моделирования без удаления 40 каталогов, содержащих файлы.

(В этом случае не имеет значения , но в будущем может быть полезно знать, что rm никогда не удалит каталог, если вы явно не попросите его с флагом -r.)

0
ответ дан 23 May 2018 в 04:47

Другие вопросы по тегам:

Похожие вопросы: