если у вас есть Bash 4.0++
#!/bin/bash
shopt -s globstar
for file in /var/www/html/**/.DS_Store /var/www/html/**/._
do
echo rm "$file"
done
Ты можешь переключиться на zsh вместо bash. Это позволяет вам использовать ** для сопоставления файлов в любом месте дерева каталогов:
$ rm /var/www/html/**/_* /var/www/html/**/.DS_Store
Вы также можете комбинировать их следующим образом:
$ rm /var/www/html/**/(_*|.DS_Store)
Zsh имеет много других возможностей, которых не хватает bash, но только для этого стоит сделать переключатель. Он доступен в большинстве (вероятно, во всех) дистрибутивов linux, а также в cygwin и OS X.
Больше информации вы можете найти на сайте zsh.
перейдите в каталог и используйте:
find . -name ".DS_Store" -print0 | xargs -0 rm -rf
find . -name "._*" -print0 | xargs -0 rm -rf
Не проверено, сначала попробуйте их без xargs!
Вы можете заменить точку после find на каталог вместо того, чтобы сначала переходить в каталог.
find /dir/here ...
find /var/www/html \( -name '.DS_Store' -or -name '._*' \) -delete
cd /var/www/html && find . -name '.DS_Store' -print0 | xargs -0 rm
cd /var/www/html && find . -name '._*' -print0 | xargs -0 rm