파일 이름을 사용하여 디렉터리를 만들고 파일을 해당 폴더로 이동합니다.

파일 이름을 사용하여 디렉터리를 만들고 파일을 해당 폴더로 이동합니다.

약 150개의 텍스트 파일이 포함된 폴더가 있습니다. 150개의 파일 이름으로 폴더를 만들고 싶습니다. 그런 다음 텍스트 파일을 해당 폴더로 이동하고 싶습니다.

myfolder 디렉토리 내부의 파일 이름 예:

~/myfolder/
       |______ ajhaslf.txt
       |______ oiueed.txt
       |______ dsflije.txt

내가 원하는 새로운 구조는 다음과 같습니다.

~/myfolder/
       |______ ajhaslf
                   |____ajhaslf.txt
       |______ oiueed
                   |____oiueed.txt
       |______ dsflije
                   |____dsflije.txt

물론 파일 이름으로 디렉토리를 만드는 것은 나에게 문제가 되지 않습니다 mkdir.

답변1

@gniourf_gniourf올바른 생각을 가지고 있습니다:

set -o errexit -o nounset
cd ~/myfolder
for file in *.txt
do
    dir="${file%.txt}"
    mkdir -- "$dir"
    mv -- "$file" "$dir"
done

이는 POSIX와 호환되어야 합니다. 그것은~ 아니다요각. 그럴 것이다~ 아니다something.txt및 이름이 두 개의 파일이 있으면 작동합니다 something.txt.txt.

관련 정보