2013-12-19 3 views
0

Требование:для удаления файлов старше 7 дней с использованием Unix

У меня есть путь, где будут присутствовать файлы.

мне нужно получить путь от него и удалить файлы старше 7 дней с именем .logo или , OUT0 ..

ВЫПУСКА: пробовал ниже, но его будет много путей, не были перечислены ..

#reading source path from rem_logs.txt 

cat rem_logs.txt | while read FILE_PATH 
do 
    echo " Path obtained from rem_logs.txt --> '$FILE_PATH'" 


    echo "File has to be removed from '$FILE_PATH'" 

    #moving to the specified path above 
     find $FILE_PATH -type f -mtime +7 -print | while read FILE_NAME 

    echo "File is '$FILE_NAME'" 
     do 
      chmod 777 $FILE_NAME 


     echo "$FILE_NAME is received" 
       if [ "$FILE_NAME"=*.log0* -o "$FILE_NAME"=*.out0*] 
       then 
        echo " $FILE_PATH/$FILE_NAME" > $LOGPATH/abdul.txt 

используется выше заявление для тестирования в среде тестирования

    else 
        echo "This file - $FILE_NAME need not be removed" 
       fi 
     done 
     UpdateLog_del.sh "$FILE_NAME is presently deleted from the above mentioned path" 

done 

ответ

3

Рассмотрим делать что-то вроде этого:

while read FILE_PATH 
do 
    #for each filename found 
    for FILE_NAME in $(find $FILE_PATH \(-name "*.log0" -o -name "*.out0" \) -type f -mtime +7 -print) 
     do 
     chmod 777 $FILE_NAME 
     echo "$FILE_NAME" >> $LOGPATH/abdul.txt 
     done 
     UpdateLog_del.sh "$FILE_NAME is presently deleted from the above mentioned path" 
#read from rem_logs.txt which contains the paths 
done < rem_logs.txt 
+0

Это будет печатать не удалять ?? !! – SriniV

+0

Thks, но моя проблема также в том, что он ищет по многим другим путям, чем пути, перечисленные в rem_logs.txt. – user3116123

+0

Вы правы; Проверьте обновленный ответ – trikelef

1

Попробуйте это:

find /path -type f -mtime +7 -regex '$\|.*log0$\|.*out0$' -print | xargs -I '{}' -n1 rm -f {}   
Смежные вопросы