개발을 하면서 마주치는 오류는 무조건 캡처하는 버릇이 있어서
스크린샷 폴더 정리가 시급했다.
든든한 ChatGPT와 함께 작업하려 했는데 오늘따라 컨디션이 안좋은지 오류를 해결하지 못했다.
뭔가 에러 로그가 찍히는게 공백을 기준으로 for문이 도는 것 같았다.
역시나 공백을 기준으로 slice가 돼서 오류를 날리고 있었다.
while문을 사용하고 파일명에서 날짜를 추출해 날짜 폴더를 찾거나 생성한다.
하지만 해당 코드를 사용하니 Screen-Shot 폴더에 이미지뿐만 아니라,
이미 날짜별 폴더로 이동된 이미지들을 다시 find해서
2023-05-11? 2023-05-11 같은 기괴한 폴더를 만들어 이동시키고 있었다.
# 이미지 파일들의 리스트를 불러옴
find "$screenshot_folder" -maxdepth 1 -type f -name "*.png" | while read filename
해당 부분에 -maxdepth 1을 추가해 현재 디렉토리에서만 찾도록 명령한다.
완성된 스크립트
# 스크린샷 이미지가 저장된 폴더 경로
screenshot_folder="$HOME/Desktop/Screen-Shot"
# 이미지 파일들의 리스트를 불러옴
find "$screenshot_folder" -maxdepth 1 -type f -name "*.png" | while read filename
do
echo "파일명: $filename"
# 파일명에서 날짜 추출
date=$(echo "$filename" | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}')
if [ -n "$date" ]
then
# 날짜 폴더 경로 생성
date_folder="$screenshot_folder/$date"
# 날짜 폴더가 없으면 생성
if [ ! -d "$date_folder" ]
then
echo "폴더 생성: $date_folder"
mkdir "$date_folder"
fi
# 파일 이동
mv "$filename" "$date_folder"
echo "이동 완료: $filename -> $date_folder"
else
echo "날짜 정보가 없는 파일: $filename"
fi
done
echo "모든 스크린샷 파일들이 정리되었습니다."