파일크기를 0으로 하는 방법
$ cp -f /dev/null 파일이름 # 주의해서 사용하셔야하겠죠?
$
그리고..
$ TODAY=$(date '+%Y%m%d')
$ WORKDIR=/var/log
$ FLAVOR="ab cd ef gh" # 원하는 작업디렉토리가 있을경우
$ for dir in $FLAVOR; do
> for file in ${WORKDIR%/}/${dir%/}/*.err; do
> case "$flie" in
> ${TODAY}${dir}.err )
> ;; # Do nothing
> * )
> echo $file # 하고 싶은 일로 바꾸세요.
> ;;
> esac
> done
> done
보여주신 예로 만든 겁니다. 알아서 수정하세요.
${매개변수%/} 과 같은 것은 bash의 manpage에 설명이 나와있습니다.
백가지 중 한가지 방법이니 응용하시면 좀더 나은.. 원하는. 스크립트를 완성하실 수 있을
겁니다. :-) bash에 관해 배우시는 것이 좋을 듯 싶습니다.
그렇게 하시면 나중에는 질문하는 것보다
직접 찾으셔서 더 빨리 답을 얻으실 수 있을 것이라 생각됩니다.
: 아래 질문의 답변에 감사드립니다.또 궁금한점이 있어 이렇게 질문합니다.
:
: 질문1
:
: 에러로그가 아래와 같이 있을때
: /var/log/ab/ab.err
: /var/log/cd/cd.err
: /var/log/ef/ef.err
: /var/log/gh/gh.err
:
: 쉘스크립트로 위의 네개의 err파일의 크기를 0으로 만드는 방법을 알고싶습니다.(다시말
: 해서 파일은 지우지않고 내용만 지운단말입니다.)
: 질문2
:
: 에러로그가 아래와 같이 있을때
: /var/log/ab/11192001ab.err
: /var/log/ab/11202001ab.err
: /var/log/cd/11192001cd.err
: /var/log/cd/11202001cd.err
: /var/log/ef/11192001ef.err
: /var/log/ef/11202001ef.err
:
: 쉘스크립트로 아래와 같이 오늘날짜만 남기고 다 지우지는 방법을 알고싶습니다.
: /var/log/ab/11202001ab.err
: /var/log/cd/11202001cd.err
: /var/log/ef/11202001ef.err
:
: 에러로그앞에 다른 디렉토리가 있으니까 해결방법을 모르겠네요.
: 부디 고수님들의 조언부탁드립니다.