본문 바로가기
돈돈코딩

리눅스 터미널에서 for문 돌리기 (다수의 파일 이름 일괄 변경)

by 구공칠 2021. 7. 8.

for i in *.jpg;
do
newname="$(echo $i|sed s/$i/ex$i)";   **띄어쓰기 쓰면 안됨**
(sudo) mv "$i" "$newname";             **강제 집행시 sudo**
done

한줄씩 뜯어보면

for i in *.jpg는 python과 비슷하다. .jpg를 갖는 모든 파일을 순서대로 i에 넣어줌.
터미널에서 변수에는 $를 꼭 붙여야 한다.
(ex) 
i=1
echo i --> i출력
echo $i --> 1출력
(echo: print와 같은 함수)

sed s: 뒤에 나오는 첫 단어를 두번째 단어로 바꿔줌.
sed s/1/12 -> 1을 12로 바꿔줌.

해석해보면 $i를 sed s를 이용해 $i->ex$i로 바꿈. i=1일 경우, ex1이 echo에 의해 출력.
echo에 의해 출력된 값을 ""를 이용해 string으로 변환 후 newname에 저장.
이후 $i를 $newname으로 mv 해주면 폴더의 모든 .jpg파일을 원하는 값으로 변환히킬 수 있음.

댓글