폴더에 파일 목록이 있습니다.
./file1.ext
./file2.ext2
./file3.ext
이 모든 파일과 관련 이름을 각각의 새 폴더로 이동하고 싶습니다. 예를 들면 다음과 같습니다.
./file1/file1.ext
./file2/file2.ext2
./file3/file3.ext
아주 적은 수의 명령으로 이를 수행할 수 있는 방법이 있습니까?
답변1
루프를 사용하여 이 작업을 수행할 수 있습니다.
for f in *; do
[ ! -d "${f%.*}" ] && mkdir "${f%.*}/"
mv "$f" "${f%.*}/"
done
그러면 현재 디렉터리의 모든 항목이 생성되고 이동됩니다.
${f%.*}
꼬리 확장을 사용하십시오. 또한 file1.ext
및 file1.ext1
.
이 스크립트 가 있으면 file1
다음보다 오래된 스크립트에서는 작동하지 않습니다.file1