Tengo una imagen original que es img.jpg.
¿Cómo puedo eliminar imágenes duplicadas que son img.jpg1, img.jpg2, img.jpg3? Quiero conservar la imagen que tiene la extensión .jpg.
Gracias
Respuesta1
Solución GUI
- En nautilus, abra el cuadro de diálogo de selección usando ctrl+S
- Escribe
*.jpg
para seleccionar todas las imágenes con la extensión .jpg
- Invierte la selección usando ++ ctrlpara seleccionar los que no tienen la extensión .jpg (que es lo que quieres).shifti
- Haga clic derecho y elija
Move to trash
o simplemente presione la deletetecla.
Desde aquí también puedes hacer cualquier otra cosa que quieras: comprimir, cortar, etc.
Respuesta2
Combine el find
comando con -regex
y -exec
banderas. En este ejemplo en particular, -exec
simplemente toma todas las imágenes duplicadas y las mueve a la papelera, para que aún puedas recuperar cualquiera de ellas si así lo deseas. Luego puede usar rm
el comando o limpiar la basura a través de la GUI
testerdir:$ ls
img.jpg img.jpg1 img.jpg2 img.jpg3
testerdir:$ find . -regex ".*\.jpg[1-9]+" -print -exec mv -t $HOME/.local/share/Trash/ {} +
./img.jpg1
./img.jpg3
./img.jpg2
testerdir:$ ls $HOME/.local/share/Trash
expunged/ files/ img.jpg1 img.jpg2 img.jpg3 info/
testerdir:$ ls
img.jpg
Respuesta3
Usando bash
, de forma no recursiva:
shopt -s extglob nullglob
rm img.jpg+(?)
Si solo tienes dígitos al final:
rm img.jpg+([0-9])
Recursivamente:
shopt -s globstar extglob nullglob
rm **/img.jpg+(?)
En caso de solo dígitos al final:
rm **/img.jpg+([0-9])
Aquí hemos utilizado algunas opciones de shell:
extglob
nos permitirá hacer coincidir patrones globales extendidos, por ejemplo,+(?)
coincidirá con una o más apariciones de cualquier carácter. Esto debería estar habilitado en un shell interactivo de forma predeterminada.nullglob
dará como resultado una cadena nula si no se encuentra ninguna coincidenciaglobstar
nos permitirá buscar recursivamente usando**