V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
rateltalk
V2EX  ›  Linux

请教:如何遍历指定目录,删除指定天数以上的文件?

  •  
  •   rateltalk ·
    shangdev · Aug 14, 2020 · 2539 views
    This topic created in 2082 days ago, the information mentioned may be changed or developed.

    我目前的脚本是:

    #!/bin/bash
    #---------------------
    # OPTIONS
    #----------------------
    
    DAYS_TO_KEEP=30
    
    # 待删除目录
    dirs[0]="/home/wwwroot/dir1"
    dirs[1]="/home/wwwroot/dir2"
    
    # 遍历
    for dir in $dirs; do
      if [ "$DAYS_TO_KEEP" -gt 0 ] ; then
        echo "Deleting file older than $DAYS_TO_KEEP days"
        find $dir/* -mtime +$DAYS_TO_KEEP -exec rm {} \;
      fi
    done
    

    但是运行后并没有执行成功,也没报错什么的,,,如果单单运行:

    find $dir/* -mtime +$DAYS_TO_KEEP -exec rm {} \;
    

    这个,是可以成功的。。

    求指点

    Supplement 1  ·  Aug 14, 2020

    找到问题了,循环那里应该这样写:

    for dir in ${dirs[@]}; do
    

    $dirs 并不能获取到完整的数组。

    6 replies    2020-08-16 10:03:30 +08:00
    Mohanson
        1
    Mohanson  
       Aug 14, 2020
    ```
    $ apt install tmpreaper
    ```
    rateltalk
        2
    rateltalk  
    OP
       Aug 14, 2020
    @Mohanson 应该是数组定义和循环有问题,并不是删除语句不能成功。。
    rateltalk
        3
    rateltalk  
    OP
       Aug 14, 2020
    找到问题了,循环那里应该这样写:
    ```
    for dir in ${dirs[@]}; do
    ```
    calmzhu
        4
    calmzhu  
       Aug 14, 2020
    数组遍历就不对

    $ dirs[0]="/home/wwwroot/dir1"
    $ dirs[1]="/home/wwwroot/dir2"
    $ echo $dirs
    /home/wwwroot/dir1

    $ echo ${dirs[*]}
    /home/wwwroot/dir1 /home/wwwroot/dir2

    然后可以直接遍历的
    for dir in dir1 dir2 dir3
    do
    wangyzj
        5
    wangyzj  
       Aug 14, 2020
    find /home -mtime +7 -exec rm {} \\;
    尝试后面多加一个反斜线
    webs
        6
    webs  
       Aug 16, 2020
    find 后面可以带多个目录
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4973 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 139ms · UTC 01:08 · PVG 09:08 · LAX 18:08 · JFK 21:08
    ♥ Do have faith in what you're doing.