#!/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
리눅스, 유닉스를 다루다보면 이러이러한 기능의 프로그램이 있었으면 좋겠는데..

거대한 프로그램이 아닌 특정한 작업에 최적화된 나만의 프로그램이 필요할 경우가 반드시 생긴다.
지금까지는 주로 bash, php 또는 c로 간단한 프로그램을 구현했지만 어떤 제약에 부딪치곤 했다.
파일처리나 강력한 정규표현식을 사용하고 싶을때, 손쉽게 DB 프로그램을 만들고 싶을때, 프로그램 작성 시간이 길어질때 등등...

차선으로 생각한 프로그램 언어가 python과 perl 이었다.
처음엔 python을 염두해두고 책도 사고 공부만 하면 되었는데 게을러서, 혼자하는게 심심해서, 동기부여가 없어서 미루고 미루다 결국엔 아무것도 하지 못했다.

며칠전 KLDP 새소식란에 펄매니아 에서 perl 관련 스터디그룹을 조직한다는 소식을 듣고 곧바로 합류했다.
지난주는 개인적인 일때문에 참석하지 못했고 오늘에서야 첫모임에 나가게 되었다.
매주 토요일 오후 연세대 과학관에서 모이기로 했는데 회사와 집, 딱 중간쯤이라 나에겐 최적의 장소가 아닌가 싶다.


첫번째 스터디가 끝나고 느낀게 많았다.

10여명의 멤버중 내가 비교적 많은 나이였다는게 놀라웠고, perl이란 언어를 다루는 사람들은 괴짜 또는 해커 비스무리한 사람이라는 선입견이 깨진것도 그랬고, 무엇보다도 perl이 결코 만만치 않은 언어라는 점이 정신무장을 다시금 하게해 주었다.

솔직히 php, c 와 문법면에서 유사해서 별로 어렵지 않게 따라 붙을것 같았는데 왠걸..
오늘 스터디의 문법 부분에서 "내가 완전 까막눈이구나"...  확실히 느꼈다.
교재로 사용하는 "펄 제대로 배우기 2판(Learning Perl)" 도 책 분량은 적었지만 나같은 perl 초보자가 보기에는 굉장히 어렵게 느껴졌다.
처음 접하는 wiki, trac 시스템도 약간 부담스럽고..
오늘이 첫번째 스터디 모임이라는거에 조금의 위안을 가지고 앞으로 빡시게 스터디 준비를 해야할 거 같다.

잠룡모드 발동이다.



펄매니아 웹사이트 : http://perlmania.or.kr/

펄매니아 위키 : http://www.perlmania.or.kr:9000/trac/wiki

임시방편이지만...


.bash_logout 파일을 편집한다.

bash의 history 기능에서 해당 command의 내용을 일정량(/etc/profile 파일의 HISTSIZE 변수)을 적재한 .bash_history에 조작을 가하는 것이다.

단, 아래의 과정은 바로 전 단계 shell의 history 정보는 가지고 있다.


$ cat ~/.bash_logout

clear


### clear 위에 히스토리정보를 가진 ~/.bash_history 파일의 크기를 0으로 만든다.


$ cat ~/.bash_logout

> ~/.bash_history

clear

$


### .bash_logout 파일을 source 한다.

$ . .bash_logout

$


root가 알아버리면 말짱 도루묵이지만 가끔 유용할 때가 있을것이다.

TAG bash, history, root

$ cat > ManUJeol

#!/bin/sh
month=`date +%D | awk -F/ '{print $1}'`
day=`date +%D | awk -F/ '{print $2}'`

while [ "$month" = "04" -a "$day" = "01" ]; do
  a_joke=("ㅋㅋㅋ" "ㅠㅠㅠ" "ㅎㅎㅎ" "ㄹㄹㄹ" "ㄹㄷ하삼")
  rand=$RANDOM
  case `expr $rand % 5` in
       0) joke=${a_joke[0]};;
       1) joke=${a_joke[1]};;
       2) joke=${a_joke[2]};;
       3) joke=${a_joke[3]};;
       4) joke=${a_joke[4]};;
  esac
  echo $joke
  sleep 1
  continue
done

^D


$ sh ./ManUJeol