find . -name "filename" -delete
Eu quero excluir todos os arquivos com um nome específico 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.
como uma elaboração sobre a resposta de @ tante, você pode querer garantir que a lista de arquivos usada esteja correta antes de excluir esses arquivos:
find <source_dir> -name <filename> -print
se a inspeção mostrar uma lista válida, então
find <source_dir> -name <filename> -delete
outra opção se você quiser usar vários 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, assegure-se de que a precisão de qualquer script antes da execução e sempre tenha um backup pronto, caso algo dê errado.