Здравствуйте.
Поскольку я считаю сбя новичком — пишу в этой ветке. Хочу разобраться в способах массового удаления файлов и папок.
Суть вопроса: какие есть способы удалить все файлы и директории по ключевому слову?
Например, для следующей структуры папок и файлов:
-/desktop
-/first
MyText.txt
MyTestic.txt
sound.mp3
-/inFirst
someFile.testic
-/second
-/testic
testic.testic
other.txt
-/deepFolder
someFile.pdf
-/Testic
Testic.testic
я хочу удалить все, что содержит слово "
testic". Не зависимо от того, что это: расширение файла, часть имени файла, часть имени директории. Регистр символов пока не трогаем.
Ожидаемый результат:
-/desktop
-/first
MyText.txt
MyTestic.txt
sound.mp3
-/inFirst
-/second
-/Testic
Я нащупал два способа выполнения этой задачи:
- Самым простым способом удалить всё, что содержит сочетание букв "testic" оказалась команда "rm":
rm -rfv desktop/**/*testic*. (Для работы двойных звездочек (**) в bash нужно ввести shopt -s globstar)
Это пока единственная команда, которая сработала в соответствии с моими ожиданиями. - Еще есть команда "find" с опцией "-delite". Но она удаляет либо только файлы: find desktop/ -name "testic" -type f -delete, либо только папки: find desktop/ -name "testic" -type d -delete. Объединение команды в "-type f,d" выдает ошибку "directory is not empty". Если применять их по очереди — вроде все получается.
Про удаление по ключевому слову
в любом регистре — я вообще пока не заикаюсь, но тоже интересно.
Какие еще есть команды массового удаления файлов и папок по заданным параметрам?