Erro de sintaxe próximo ao token inesperado '(' ao tentar mover arquivos

Erro de sintaxe próximo ao token inesperado '(' ao tentar mover arquivos

Então, estou tentando seguir a solução deste tópico:Comando CMD para criar uma pasta para cada arquivo e mover o arquivo para a pastacomo eu quero fazer a mesma coisa que o OP desse tópico queria.

Criei manualmente as pastas antes de encontrar esse tópico.

Porém, quando tento for %i in (*) do move "%i" "%~ni"colocar cada arquivo em sua respectiva pasta, recebo o seguinte erro:

bash: syntax error near unexpected token `('

Meus arquivos são nomeados assim: x01.sql, x02.sql, x03.sql... As pastas, correspondentemente, são x01, x02, x03 e assim por diante. Não há espaços, caracteres especiais ou não ASCII em seus nomes. Eu uso o GNU bash versão 5.0.7(1).

Como resolvo o erro e faço com que os arquivos sejam movidos cada um para sua pasta?

Responder1

GNU Bash e Windows CMD são entidades diferentes. Esse Comando CMD para criar uma pasta para cada arquivo e mover o arquivo para a pastaé para Windows CMD.

Para GNU Bash, você pode seguiresse

Responder2

parece que você está tentando executar o comando em lote do Windows no GNU bash. é por isso que não está funcionando. como sugerido por "Saurabh P Bhandari", use os seguintes trechos deste link, https://unix.stackexchange.com/questions/219991/how-do-i-create-a-directory-for-every-file-in-a-parent-directory certifique-se de inserir o cd na pasta pai primeiro.

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

informação relacionada