Error de sintaxis cerca del token inesperado '(' al intentar mover archivos

Error de sintaxis cerca del token inesperado '(' al intentar mover archivos

Entonces estoy tratando de seguir la solución de este hilo:Comando CMD para crear una carpeta para cada archivo y mover el archivo a la carpetaya que quiero hacer lo mismo que quería OP de ese hilo.

Creé manualmente las carpetas antes de encontrar ese hilo.

Sin embargo, cuando intento for %i in (*) do move "%i" "%~ni"colocar cada archivo en su carpeta respectiva, aparece el siguiente error:

bash: syntax error near unexpected token `('

Mis archivos se llaman así: x01.sql, x02.sql, x03.sql... Las carpetas, respectivamente, son x01, x02, x03, etc. No hay espacios ni caracteres especiales o que no sean ASCII en sus nombres. Yo uso GNU bash versión 5.0.7(1).

¿Cómo soluciono el error y hago que los archivos se muevan cada uno en su propia carpeta?

Respuesta1

GNU Bash y Windows CMD son entidades diferentes. Este Comando CMD para crear una carpeta para cada archivo y mover el archivo a la carpetaes para CMD de Windows.

Para GNU Bash, puedes seguireste

Respuesta2

parece que estás intentando ejecutar el comando por lotes de Windows en GNU bash. por eso no funciona. como sugirió "Saurabh P Bhandari", utilice los siguientes fragmentos de este enlace, https://unix.stackexchange.com/questions/219991/cómo-creo-un-directorio-para-cada-archivo-en-un-directorio-parental asegúrese de ingresar primero a la carpeta principal.

for x in ./*.txt; do
  mkdir "${x%.*}" && mv "$x" "${x%.*}"
done

información relacionada