Eu tenho um script que foi fornecido com algum SW. A saída do script é algo parecido com isso (no modo de depuração).
+ 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'
No entanto, depois disso, ao procurar o arquivo file1.cdr.old.Z, file1.cdr.old.Z, .. nesse diretório, o arquivo não está lá.
Se executar o comando file
, parece que não há motivo para a compactação falhar:
-bash-3.2# file file1.cdr.old
file1.cdr.old: ASCII text, with very long lines
Alguma sugestão?
EDITAR: as partes relevantes do script:
# 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
}
Tags compression