Quero excluir todos os arquivos com um determinado nome em todos os subdiretórios do meu diretório pessoal.
Eu tentei:
rm -r file
no meu diretório pessoal, mas não funcionou porque esse arquivo não existe nesse diretório.
find . -name "filename" -delete
como uma elaboração da resposta do @ tante, convém garantir que a lista de arquivos usada esteja correta antes de excluir esses arquivos:
find <source_dir> -name <filename> -print
se a inspeção mostra uma lista válida,
find <source_dir> -name <filename> -delete
outra opção, se você desejar isso em muitos diretórios usando um diretório temporário:
mkdir <dest_dir>
for i in <list_of_directories>
do
find "$i" -name <filename> -exec /bin/mv {} <dest_dir>
done
# check dest_dir
ls dest_dir
rm -rf <dest_dir>
Como sempre, garanta a precisão de qualquer script antes da execução e sempre tenha um backup pronto, caso algo dê errado.