Linux删除距离今天7天之前的所有文件夹
致谢:感谢 铭鉴 大神的帮助和指点。
背景:
因平时需要处理服务器日志,日志均记录在固定格式的文件夹之中,格式为如 2016_11_11 的文件夹之中。
#!/bin/bash
dir=$(ls -l | grep "[0-9][0-9][0-9][0-9]_[0-9][0-9]_[0-9][0-9]" | awk -F " " '{print $9}')
today_s=$(date -d "-7 day" +%Y%m%d)
#echo $dir
for i in $dir
do
dir_replace=$(echo "$i" | sed 's/_//g')
dir_date=$(date -d "$dir_replace" +%Y%m%d)
if [ $dir_date -le $today_s ]
then
echo "$i"
fi
done
将then fi之间的echo替换成删除的命令即可。
另外附上删除距今天7天的那个文件夹的命令。
find /mnt/d/test/ -type d -name `date +"%Y_%m_%d" -d "-7 day"`| xargs rm -rf