¿Cómo elimino todos los archivos que coinciden con un patrón?


76

Cuando revierto en Mercurial, deja varios .origarchivos. Me gustaría poder ejecutar un comando para eliminarlos a todos.

He encontrado algunas fuentes que dicen ejecutar:

rm **/*.orig

Pero eso me da el mensaje:

rm: no se puede eliminar `* / .orig ': no ​​existe tal archivo o directorio

También he intentado:

  • rm -rv *.orig

  • rm -R *\.orig


Echar un vistazo a superuser.com/a/699287/92334
LU55

Respuestas:


149

Usa el findcomando (¡con cuidado!)

find . -name '*.orig' #-delete

He comentado el comando de eliminación, pero una vez que esté satisfecho con lo que coincide, simplemente elimine el #de la línea y debería eliminar todos esos archivos.


¿Funciona eso recursivamente?
Frank Barcenas

2
@FrankBarcenas Sí, find hace todo de forma recursiva. Si quieres limitar cómo funciona, puedes jugar con los argumentos -maxdeptho -mindepth.
Oli

66
Definitivamente deja -deleteal final de las banderas. find . -delete -name '*.orig'ignorará el filtro y golpeará todo su directorio.
Michael

1
@Michael, sí. Ya resolví el problema congit clean -fdx
kyb

1
@kamal yo probablemente todavía uso de encontrar, pero con sus -regexo -iregexpredicados. Analizar los nombres de archivos (cuando los está canalizando) puede ser difícil de hacer de manera segura a veces.
Oli

6

"find" tiene algunas técnicas muy avanzadas para buscar en todos los directorios y archivos rm actuales o actuales.

find ./ -name ".orig" -exec rm -rf {} \;

3
¿Cuál es el beneficio sobre el uso -delete?
muru

@muru Supongo que obtendría un mensaje para cada archivo si elimina -rf.
Peter

@Peter no necesariamente. Incluso entonces, entonces? La respuesta usa -rf, y findtiene -ok.
muru

@muru parece que -delete no elimina carpetas
Andrii Karaivanskyi

@AndriiKaraivanskyi a menos que la eliminación haya fallado, lo hace.
muru

1

He eliminado todos los archivos que comienzan con .nfs000000000 como este

rm .nfs000000000*
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.