소프트웨어에서 제공하는 일부 스크립트가 있습니다. 스크립트 출력은 다음과 유사합니다(디버그 모드에서).
+ changeDirectory
+ '[' -d /cdr/work/proc_raw/proc ']'
+ cd /cdr/work/proc_raw/proc
+ echo 'Changed to the directory: /cdr/work/proc_raw/proc'
Changed to the directory: /cdr/work/proc_raw/proc
+ retypeFileName
++ echo ''\''*.old'\'''
++ sed 's/'\''//g'
+ FILE='*.old'
+ case $TYPE in
+ compressFiles
+ echo 'files to compress: '
files to compress:
+ find . -name '*.old' -mtime +3
./file1.cdr.old
./file2.cdr.old
...
+ find . -name '*.old' -mtime +3
+ xargs compress -f
+ ecode=0
+ '[' 0 -gt 0 ']'
+ echo 'executed: find . -name *.old -mtime +3 | xargs compress -f'
그러나 나중에 해당 디렉토리에서 file1.cdr.old.Z, file1.cdr.old.Z, ..를 검색해 보면 해당 파일이 존재하지 않습니다.
file
다음 명령을 실행하면 압축이 실패할 이유가 없는 것 같습니다.
-bash-3.2# file file1.cdr.old
file1.cdr.old: ASCII text, with very long lines
어떤 제안이 있으십니까?
편집: 스크립트의 관련 부분:
# Change to the selected directory
changeDirectory (){
if [ -d $DIRECTORY ]
then
cd $DIRECTORY
echo "Changed to the directory: $DIRECTORY" >> $LOGFILE
else
echo "$DIRECTORY does not exists" >> $LOGFILE
exit 1
fi
}
# Removes the "'" characters from filename.
retypeFileName (){
FILE=$(echo $FILE | sed s/"'"//g )
}
# COMPRESSING FILES
compressFiles () {
echo "files to compress: " >> $LOGFILE
find . -name "$FILE" -type f $ACTION_TYPE +$PARAM >> $LOGFILE
find . -name "$FILE" -type f $ACTION_TYPE +$PARAM | xargs compress -f
ecode=$?
if [ $ecode -gt 0 ]
then
dt=`date "+%Y-%b-%d %H:%M:%S"`
echo "$dt > ERROR while compressing files. Error Code was $ecode" >> $LOGFILE
exit 2
fi
echo "executed: find . -name "$FILE" -type f $ACTION_TYPE +$PARAM | xargs compress -f" >> $LOGFILE
}