【发布时间】:2016-01-13 09:36:40
【问题描述】:
您好,我的脚本有问题,我想删除超过 7 天的文件,但我做错了:) 并且不起作用。提前感谢您的帮助
#!/bin/bash
# sudo apt-get install pydf
#pydf
# source
DST="/mnt/share/backup"
#find TIF
FINDFILE=*.TIF
if ! [ -f "$DST/$FINDFILE" ]; then
echo "no file in: $DST"
find $DST -type f -mtime +7 -name '*.TIF'
if ! [ "$?" = "0" ]; then
echo "ERROR $DST/"
exit 200
fi
else
echo "file exist"
echo "older than 7 days wiil deleted "
find $DST -type f -mtime +7 -name '*.TIF' -execdir rm -- {} \;
if ! [ "$?" = "0" ]; then
echo "ERROR : $DST"
exit 200
fi
fi
如果文件存在则find $DST -type f -mtime +7 -name '*.TIF' 如果存在则find $DST -type f -mtime +7 -name '*.TIF' -execdir rm -- {} \;
输出终端
root@fmx2-virtual-machine:/home/fm-x2# ./find.sh
no file in: /mnt/share/backup
/mnt/share/backup/P1010007.TIF
/mnt/share/backup/P1010004.TIF
/mnt/share/backup/P1010003.TIF
/mnt/share/backup/P1010009.TIF
/mnt/share/backup/P1010008.TIF
/mnt/share/backup/P1010005.TIF
/mnt/share/backup/P1010006.TIF
root@fmx2-virtual-machine:/mnt/share/backup# ls -lh
razem 224M
-rw-r--r-- 1 fm-x2 fm-x2 82M sty 13 09:37 2016-01-13.backup.tar.bz2
-rwxr-xr-x 1 fm-x2 fm-x2 21M gru 31 2004 P1010003.TIF
-rwxr-xr-x 1 fm-x2 fm-x2 21M gru 31 2004 P1010004.TIF
-rwxr-xr-x 1 fm-x2 fm-x2 21M gru 31 2004 P1010005.TIF
-rwxr-xr-x 1 fm-x2 fm-x2 21M gru 31 2004 P1010006.TIF
-rwxr-xr-x 1 fm-x2 fm-x2 21M gru 31 2004 P1010007.TIF
-rwxr-xr-x 1 fm-x2 fm-x2 21M gru 31 2004 P1010008.TIF
-rwxr-xr-x 1 fm-x2 fm-x2 21M gru 31 2004 P1010009.TIF
root@fmx2-virtual-machine:/mnt/share/backup#
如果没有 tiff 退出,则开头是错误 if ! [ -f "$DST/$FINDFILE" ]; then。
问题解决了
13行if ! [ "$DST/$FINDFILE" ]; then
root@fmx2-virtual-machine:/home/fm-x2# ./find.sh
file exist
older than 7 days wiil deleted
root@fmx2-virtual-machine:/mnt/share/backup# ls -l
razem 83536
-rw-r--r-- 1 fm-x2 fm-x2 85538248 sty 13 09:37 2016-01-13.backup.tar.bz2
【问题讨论】:
-
does not work,想扩展这个吗? -
是不工作输出终端:
no file in: /mnt/share/backup /mnt/share/backup/P1010007.TIF /mnt/share/backup/P1010004.TIF并且不删除文件 -
请在您的问题中发布整个输出。
-
-f接受单个文件作为参数,*也不会像引号一样扩展。所以您正在搜索一个名为*.TIFF的文件,该文件显然不存在。 -
是的,f
-f没有 f 工作if ! [ "$DST/$FINDFILE" ]; then。感谢您的帮助