Quiero eliminar todos los archivos con un nombre en todos los subdirectorios de mi directorio de inicio.
Lo intenté:
rm -r file
en mi directorio de inicio, pero no funcionó porque ese archivo no existe en ese directorio.
find . -name "filename" -delete
Como explicación de la respuesta de @ tante, es posible que desee asegurarse de que la lista de archivos utilizada sea correcta antes de eliminar esos archivos:
find <source_dir> -name <filename> -print
si la inspección muestra una lista válida, entonces
find <source_dir> -name <filename> -delete
Otra opción si desea esto en muchos directorios utilizando un directorio de retención temporal:
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 siempre, asegúrese de la precisión de los scripts antes de la ejecución y siempre tenga una copia de seguridad lista en caso de que algo salga mal.