#!/bin/sh
# 주의
# 바꿀 문자열의 디렉토리명도 바꾼다.
# 파일부터 바꾼다음 디렉토리를 바꾼다.
# find 로 검색한 결과를 순차적으로 바꾸면 나중에 나오는 파일은 못찾게 된다.
target_dir="/home/test"
target_files=`find "$target_dir" -type f`
from="old_name"
to="new_name"
# 파일을 바꾼다
for file in $target_files ; do
# 순수 파일명 추출
f=`basename $file`
# 해당파일인지 판별후 변환
if [ `echo $f | grep "$from"` ]; then
tmp=`echo $f | sed "s/$from/$to/g"`
new_file=`dirname ${file}`/${tmp}
mv -f $file $new_file
echo "change file : $file ===> $new_file "
fi
done
# 디렉토리를 바꾼다
dir_file=`find "$target_dir" -type d`
for dir in $dir_file ; do
# 해당 디렉토리인지 판별후 변환
if [ `echo $dir | grep "$from"` ]; then
new_dir=`echo $dir | sed "s/$from/$to/g"`
mv -f $dir $new_dir
echo "change dir : $dir ===> $new_dir "
fi
done
exit 0
# 주의
# 바꿀 문자열의 디렉토리명도 바꾼다.
# 파일부터 바꾼다음 디렉토리를 바꾼다.
# find 로 검색한 결과를 순차적으로 바꾸면 나중에 나오는 파일은 못찾게 된다.
target_dir="/home/test"
target_files=`find "$target_dir" -type f`
from="old_name"
to="new_name"
# 파일을 바꾼다
for file in $target_files ; do
# 순수 파일명 추출
f=`basename $file`
# 해당파일인지 판별후 변환
if [ `echo $f | grep "$from"` ]; then
tmp=`echo $f | sed "s/$from/$to/g"`
new_file=`dirname ${file}`/${tmp}
mv -f $file $new_file
echo "change file : $file ===> $new_file "
fi
done
# 디렉토리를 바꾼다
dir_file=`find "$target_dir" -type d`
for dir in $dir_file ; do
# 해당 디렉토리인지 판별후 변환
if [ `echo $dir | grep "$from"` ]; then
new_dir=`echo $dir | sed "s/$from/$to/g"`
mv -f $dir $new_dir
echo "change dir : $dir ===> $new_dir "
fi
done
exit 0


댓글을 달아 주세요