Foro de elhacker.net

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: huchoko en 4 Abril 2019, 04:23 am



Título: Borrar archivos con una extensión común recursivamente
Publicado por: huchoko en 4 Abril 2019, 04:23 am
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  :)


Título: Re: Borrar archivos con una extensión común recursivamente
Publicado por: EdePC en 4 Abril 2019, 06:01 am
- 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
  1. find -name "*.o" | xargs rm

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

Código
  1. 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
  1. find -name "*.o"

-- o si has decidido Windows:

Código
  1. DIR /S *.o

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


Título: Re: Borrar archivos con una extensión común recursivamente
Publicado por: codX en 9 Abril 2019, 23:33 pm
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.