【问题标题】:linux script find files older than x days and deletelinux脚本查找超过x天的文件并删除
【发布时间】: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。感谢您的帮助

标签: linux bash file


【解决方案1】:

您可以使用查找和管道执行此任务:

find path/to/directory -time +7 | xargs rm

【讨论】:

    猜你喜欢
    • 2015-10-02
    • 2013-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    相关资源
    最近更新 更多