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

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

약 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.

관련 정보