删除旧文件但不删除shell中的文件夹

时间:2017-09-15 14:59:21

标签: shell

我的代码是

SC_PATH=/opt/shared/data/getd-cwc/tpas/tpashtmlpreview
cd $SC_PATH
logfile=$SC_PATH/logs/temp_delete.log


tpashtmlpreviewoutput=/opt/shared/data/getd-cwc/tpas/tpashtmlpreview/tpashtmlpreviewoutput

if [ -d "$tpashtmlpreviewoutput" ]
then
echo "\nChecking files-folders to delete under the directory $tpashtmlpreviewoutput" >> $logfile
find $tpashtmlpreviewoutput/* -mtime +30 -print | while read QFILENAME
do
echo "Deleting files-folders $QFILENAME " >> $logfile
#ls -lt "$QFILENAME" >> $logfile
rm -rf -- "$QFILENAME" >> $logfile
done
else
echo "Fatal error: missing directory $tpashtmlpreviewoutput" >> $logfile
fi

TpasHtmlPreviewOutput有几个像

这样的文件夹
gek108792
gek112110
gek114154-01
gek114154-02
gek114154-03
gek114154-10
gek114154-20
gek114154-30

每次我们处理文件都会放在gek文件夹中并将日期作为当前日期。但是GEK文件夹本身的日期较旧。

使用上面的代码,它也删除了gek文件夹,因为它的日期超过30天。但它应该只删除文件而不是文件夹。内部的GEK文件夹里面几乎没有其他文件夹。

所以我的基本问题是"如何删除超过30天的文件而不是30天以上的文件夹"。请帮助我,并提前感谢。我非常感谢你的帮助和时间:)

0 个答案:

没有答案