파일을 이동하는 동안 예기치 않은 토큰 '(' 근처에 구문 오류가 발생했습니다.

파일을 이동하는 동안 예기치 않은 토큰 '(' 근처에 구문 오류가 발생했습니다.

그래서 저는 이 스레드의 해결책을 따르려고 합니다.각 파일에 대한 폴더를 생성하고 파일을 폴더로 이동하는 CMD 명령나는 그 스레드의 OP가 원했던 것과 똑같은 일을 하고 싶기 때문입니다.

해당 스레드를 찾기 전에 수동으로 폴더를 만들었습니다.

그러나 각 파일을 해당 폴더에 넣으려고 하면 for %i in (*) do move "%i" "%~ni"다음 오류가 발생합니다.

bash: syntax error near unexpected token `('

내 파일의 이름은 다음과 같습니다: x01.sql, x02.sql, x03.sql... 그에 따라 폴더는 x01, x02, x03 등입니다. 이름에는 공백, 특수 문자 또는 ASCII가 아닌 문자가 없습니다. 저는 GNU bash 버전 5.0.7(1)을 사용합니다.

오류를 해결하고 파일을 각각의 폴더로 이동시키려면 어떻게 해야 합니까?

답변1

GNU Bash와 Windows CMD는 서로 다른 엔터티입니다. 이것 각 파일에 대한 폴더를 생성하고 파일을 폴더로 이동하는 CMD 명령Windows CMD 용입니다.

GNU Bash의 경우 다음을 수행할 수 있습니다.이것

답변2

GNU bash에서 Windows 배치 명령을 실행하려는 것 같습니다. 그것이 작동하지 않는 이유입니다. "Saurabh P Bhandari"가 제안한 대로 이 링크의 다음 스니펫을 사용하세요. https://unix.stackexchange.com/questions/219991/how-do-i-create-a-directory-for-every-file-in-a-parent-directory 먼저 상위 폴더에 CD를 넣으십시오.

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

관련 정보