linux下遍历目录和文件,删除过期天数目录或文件shell脚本

Posted shixin_0125

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下遍历目录和文件,删除过期天数目录或文件shell脚本相关的知识,希望对你有一定的参考价值。

#!/bin/bash

function delete_file()

INTERVAL=$(($1*3600*24))
pathdir=$2/
#echo $INTERVAL
#echo $pathdir
now_timestamp=$(date -d "$(date +"%Y-%m-%d %T")" +%s)
#echo $now_timestamp
files=$(ls $pathdir)

for file in $files;
do
#file_date=$(stat $pathdir$file | grep Modify | awk print $2,$3);
file_date=$( stat $pathdir$file | tail -2|head -1 | awk print $1,$2| cut -c16- )
#echo $file_date
file_timestamp=$(date -d "$file_date" +%s)
#echo $file
#echo $file_timestamp
if [ $? -ne 0 ];
then
file_path=$file
echo "delete file 0 $pathdir$file_path"
rm -rf $pathdir$file_path
continue
fi
if [ $(($now_timestamp - $file_timestamp)) -gt $INTERVAL ]
then
file_path=$file
echo "delete file 1 $pathdir$file_path"
rm -rf $pathdir$file_path
fi
done
return 0;


function getdir()

for element in `ls $2`
do
dir_or_file=$2"/"$element
if [ -d $dir_or_file ]
then
echo $dir_or_file
delete_file $1 $dir_or_file
getdir $1 $dir_or_file
else
#delete_file $2 $dir_or_file
echo "clear finished"
fi
done
return 0;


root_dir="."
function main()

getdir $1 $root_dir
ret=$?
echo "getdir run ret:$ret"


main $@

使用时shell输入参数删除当前目录7天前的目录或文件

./delest_images 7




以上是关于linux下遍历目录和文件,删除过期天数目录或文件shell脚本的主要内容,如果未能解决你的问题,请参考以下文章

定时删除指定目录的过期文件(linux)

如何用PHP遍历文件数目 或删除目录下的全部文件?

linux下有的目录有可执行权限,为什么?

linux下如何删除目录

如何在linux中使用shell脚本遍历指定目录的文件,将创建时间大于指定时间的文件,复制到指定目录下。

如何在linux中使用shell脚本遍历指定目录的文件,将创建时间大于指定时间的文件,复制到指定目录下。