Borrar archivos con una extensión común recursivamente

Iniciado por huchoko, 4 Abril 2019, 04:23 AM

0 Miembros y 1 Visitante están viendo este tema.

huchoko

Pues digamos que dentro de una carpeta tengo más carpetas, de las cuales hay aún más carpetas. Cómo puedo borrar archivos de una misma extensión recursivamente en todas las carpetas que estén dentro de la carpeta principal?
Se que puedo usar rm -rf *.o, pero tengo miedo de dispararme el pie y borrar todo el disco entero.
Saludos  :)

EdePC

- Pues has la prueba, crea varias carpetas con varios ficheros y ejecuta tu mágico comando.

- Lo cierto es que el rm de Linux no es tan automágico como el del de Windows, rm no es recursivo en realidad, rm por defecto solo elimina ficheros y no carpetas, su -r sirve para eliminar carpetas y es todo. Pasa lo mismo con ls, no es como dir ... pero se complementa con grep y resulta muy poderoso.

- SIN embargo como todo comando Linux se pueden pasar redireccionadores para pasarle una lista de ficheros a eliminar, esto mediante un comando como find y xargs:

Código (bash) [Seleccionar]
find -name "*.o" | xargs rm

- Otra opción es llevar la carpeta a un Windows y pasarle lo siguiente :laugh:

Código (dos) [Seleccionar]
DEL /S *.o

-- Jeje, supongo que alguien que se maneje mejor con Linux tenga una solución más sencilla :xD

- En todo caso recomiendo que hagas una copia y trabajar en la copia, primero haciendo un listado con:

Código (bash) [Seleccionar]
find -name "*.o"

-- o si has decidido Windows:

Código (dos) [Seleccionar]
DIR /S *.o

- Luego eliminas y vuelves a listar para que veas como a salido todo

codX

cd /ruta/a/la/carpeta
ls *.o
rm *.o

porque

-r o -R
Forma recursiva borra tanto archivos como directorios y
subdirectorio.

-v
Verbose (muestra lo que se está borrando).

Si como root (es decir super usuario) ejecutamos el comando rm -rf / nos borrara casi
todo el sistema operativo con esto romperá el sistema.