Terminal buscar, renombrar eliminando

1

Mac agregará un '2' (note el espacio) al final de un archivo / carpeta que es una copia de otro archivo / carpeta dentro del mismo directorio ... Me preguntaba si alguien sabe cómo eliminar por lotes / renombra este '2' desde un directorio de carpetas desde la Terminal.

    
pregunta Ken McLeod 03.06.2015 - 02:39

2 respuestas

3

Use find para ubicar archivos de esta manera:

find . -name "* 2" -exec rm -r "{}" \;

Este comando buscará archivos y carpetas desde donde se encuentran . con el nombre "* 2" y eliminará todos los resultados -exec rm {} .

Si desea cambiar el nombre de los directorios:

find . -name "* 2" -type d -exec rename 's/ 2/-copy/g' {} \;

Como otro comando, localice solo las carpetas con el nombre "*.2" y cambie su nombre reemplazando 2 con -copy .

Si no tiene rename instalado, también puede usar

find . -name "* 2" -type d -exec bash -c '[[ -x "${0/ 2/-copy}" ]] || mv "$0" "${0/ 2/-copy}"' {} \;

(La parte [[ -x comprueba si ya existe un archivo / carpeta).

    
respondido por el jherran 03.06.2015 - 06:46
0

Bueno, en caso de que a alguien más se le ocurra esta misma pregunta ... encontré una solución simple ... si tiene Homebrew

brew install rename

...

rename -s " 2" '' *

convierte Music / Tom Petty 2 en Music / Tom Petty. Del mismo modo, si quisiera agregar algo a sus nombres de directorio con un final similar como '2', podría ...

rename -s " 2" '-blob' *

... Music/Tom Petty 2/

se convierte en

Music/Tom Petty-blob/
    
respondido por el Ken McLeod 03.06.2015 - 16:17

Lea otras preguntas en las etiquetas