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