Я нашел, что это работает довольно хорошо (по крайней мере, в Bash на Linux):
find . -wholename '*/.*' -type f | sed -n '/\/\.[^\/]\+$/p' | xargs rm
Вы можете настроить регулярное выражение в вызове sed
по своему вкусу.
Будьте осторожны: в моем случае у меня есть много скрытых файлов с именем .gitignore
или .gitkeep
, которые должны быть сохранены. Обязательно проверьте список, чтобы увидеть, есть ли там что-нибудь, что вы хотите сохранить.
Я нашел этот вариант весьма полезным, он удаляет такие файлы, как ._ANYTHING
(часто удаляются или файлы tmp):
find . -wholename '*/.*' -type f | sed -n '/\/\._[^\/]\+$/p' | xargs rm