0 votos

Bash script para mover múltiples archivos con el fragmento '(2)' en el nombre del archivo a una carpeta separada (capturas de pantalla de MacOS)

Al realizar capturas de pantalla en MacOS, el contenido del segundo monitor se encuentra en el archivo xxxx(2).png

Si un usuario (poweruser en Windows pero novato en MacOS) quiere un script que mueva todas las capturas de pantalla con *(2).* a la carpeta "dos", ¿cómo se hace vía script/línea de comandos?

El comando de abajo no funciona. Mueve todos los archivos y el usuario necesita sólo la mitad de los archivos movidos.

mkdir two
mv *(2).* two

¿Cuál es el comando mv correcto?

Archivos que contienen (2) fragmento en el nombre del archivo (al final del nombre) debe ser movido.

El ejemplo del nombre del archivo del segundo monitor es 'ssht 2022-04-27 at 12.19.55 PM (2).png'. Hay que moverlo.

Ejemplo de archivo del primer monitor es ssht 2022-04-27 at 12.19.55 PM.png

(e idealmente haciendo que se pueda hacer clic/ejecutar (chmod o .command o bash mymovecmd.sh)

man mv no habla en absoluto de ninguna notación en estrella para mover archivos. No estoy seguro de si mv en MacOS soporta globbing y cómo usarlo. https://stackoverflow.com/questions/28176590/what-do-double-asterisk-wildcards-mean

1voto

Los comodines/patrones son manejados por su shell normalmente ( mv por ejemplo, no sabe nada acerca de los patrones en los nombres de archivo, es por eso que usted puede tener nombres de archivo con * en ellos), por lo que en el caso de

mv *(2).* two

su cáscara trata de expandirse *(2).* antes de mv se llama incluso. Porque *(2) tiene un significado especial tanto en bash y zsh (uno diferente sin embargo) esto no se expandirá en algo que usted esperaría (correr echo *(2).* para ver lo que realmente hace).

Puede evitarlo escapando de la paréntesis

mv *\(2\).* two

PD: La razón por la que el find funciona es porque en este caso la regexp es manejada por find mismo (como se pone en '' y find necesita manejar las regexps por sí mismo para expandirlas para cada elemento que escanea).

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