una todos script por para los extension eliminar directorio desde crear consola carpetas carpeta buscar borrar archivos linux unix rm

linux - todos - Cómo eliminar carpetas con un cierto nombre



eliminar carpeta linux terminal (8)

En Linux, ¿cómo elimino las carpetas con un nombre determinado que están anidados en una jerarquía de carpetas?

Las siguientes rutas están debajo de una carpeta y me gustaría eliminar todas las carpetas llamadas a .

1/2/3/a 1/2/3/b 10/20/30/a 10/20/30/b 100/200/300/a 100/200/300/b

¿Qué comando de Linux debo usar desde la carpeta principal?


Esto también funciona: eliminará todas las carpetas llamadas "a" y sus contenidos:

rm -rf `find -type d -name a`


Otro:

"-exec rm -rf {} /;" can be replaced by "-delete" find -type d -name __pycache__ -delete # GNU find find . -type d -name __pycache__ -delete # POSIX find (e.g. Mac OS X)


Para eliminar todos los directorios con el nombre foo , ejecuta:

find -type d -name foo -a -prune -exec rm -rf {} /;

A las otras respuestas les falta algo importante: la opción -prune . Sin- -prune , GNU find eliminará el directorio con el nombre correspondiente y luego tratará de recurrir en él para encontrar más directorios que coincidan. La opción -prune le dice que no se repita en un directorio que -prune con las condiciones.


Si el directorio de destino está vacío, use find, filter con solo directorios, filtre por nombre, ejecute rmdir:

find -type d -name a -exec rmdir {} /;

Si desea eliminar recursivamente su contenido, reemplace -exec rmdir {} /; por -delete o -prune -exec rm -rf {} /; . Otras respuestas incluyen detalles sobre estas versiones, acéptalas también.


Tenía más de 100 archivos como

log-12 log-123 log-34 ....

las respuestas anteriores no funcionaron para mí

pero el siguiente comando me ayudó.

find . -name "log-*" -exec rm -rf {} /;

di- -type como . por lo que elimina los archivos y las carpetas que comienzan con log-

y rm -rf elimina carpetas recursivamente incluso si tiene archivos.

si quieres carpetas solo

find -type d -name "log-*" -exec rm -rf {} /;

archivos solo

find -type f -name "log-*" -exec rm -rf {} /;


Use find para el nombre "a" y ejecute rm para eliminar los nombrados de acuerdo con sus deseos, de la siguiente manera:

find . -name a -exec rm -rf {} /;

Pruébelo primero usando ls para listar:

find . -name a -exec ls {} /;

Para asegurarse de que esto solo elimine los directorios y no los archivos sin formato, use el arg "-type d" (como se sugiere en los comentarios):

find . -name a -type d -exec rm -rf {} /;

El "{}" es una sustitución para cada archivo "a" encontrado - el comando exec se ejecuta contra cada uno por sustitución.


encuentre path / to / the / folders -maxdepth 1 -name "my_ *" -type d -delete


find ./ -name "FOLDERNAME" | xargs rm -Rf

Debería hacer el truco. ADVERTENCIA, si accidentalmente bombea a . o / en xargs rm -Rf toda su computadora se eliminará sin una opción para recuperarla, lo que requiere una reinstalación del sistema operativo.