검색하지 않고 오래된 폴더 지우기

검색하지 않고 오래된 폴더 지우기

여기서는 xdays보다 오래된 오래된 폴더를 삭제하려고 합니다. 이러한 디스크의 경로는 file_path.txt에 언급되어 있습니다.

여기서 필요한 것은 위 파일에서 사용 가능한 모든 경로를 검색하고 사용 가능한 경로를 삭제하는 것입니다.

지금까지 성공하지 못한 채 시도한 내용은 다음과 같습니다.

dir_to_check='file_path.txt'
CY=`date +"%Y"`
last_month=`date '+%B' --date '1 month ago'`
lmdate=`date '+%d' --date='32 days ago'`

cmd="$dir_to_check/$CY/$last_month/$lmdate"

cat file_path.txt | while read output
do
find $cmd -type d -ctime +30
if [ $? -eq 0 ]; then
echo "Directory exists and can be deleted"
echo "rm dir"
else
echo "FAIL to delete directory as its not exists"
fi
done

답변1

알고리즘에서 발생할 수 있는 오류:

dir_to_check='file_path.txt'
CY=`date +"%Y"`
last_month=`date '+%B' --date '1 month ago'`
lmdate=`date '+%d' --date='32 days ago'`

cmd="/$CY/$last_month/$lmdate"

cat $dir_to_check | while read output
do
        find ${output}${cmd} -type d -ctime +30 
        if [ $? -eq 0 ]; then
                echo "Directory exists and can be deleted"
                echo "rm dir"
        else
                echo "FAIL to delete directory as its not exists"
        fi  
done

반환 값 대신 유틸리티 -exec의 옵션을 사용하는 것을 고려하십시오 .find$?

관련 정보