3 votos

Comando en el terminal para la eliminación de archivos llamados todos excepto uno

En `` , ¿cómo puedo borrar todos los archivos de un determinado nombre excepto una extensión? Por ejemplo si tengo:

todo en un directorio, ¿cómo puedo borrar todos los excepto para ?

Espera que `` al final de la salida:

2voto

Andreas Scherer Puntos 161

El siguiente será eliminar todos los archivos con nombre File (y sólo esos) dentro de la carpeta actual, excepto aquellos con extensión .out:

find . -type f \( -iname "File.*" ! -iname "*.out" \) -delete -maxdepth 1

Si desea realizar esta operación de forma recursiva (atravesando todas las subcarpetas), retire -maxdepth 1:

find . -type f \( -iname "File.*" ! -iname "*.out" \) -delete

El me en -inombre realiza una mayúsculas y minúsculas de búsqueda, por lo file.*, FILE.*, etc. se eliminarán también. Asimismo, file.OUT estaría a salvo.

2voto

Igor Zelaya Puntos 2266

Prueba esto:

Esto corresponde a la descripción: seleccionar todos los archivos denominados con alguna extensión, quitar la extensión de la lista y eliminar los demás.

0voto

Michael Zhou Puntos 167

El uso de ksh's extendida glob.

rm !(*.out|File2.*|FIle2.*)

Que dice en palabras - eliminar archivos que no terminan en .out o comenzar con File2. o comenzar con FIle2.

ksh extendido glob también está disponible en bash. Debe activar la opción de con shopt -s extglob. Esta solución producirá un error si se supera ARG_MAX.

Asegúrese de que usted está en el directorio donde estas archivo existe o puede quitar involuntariamente archivos.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X