V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
s609926202
V2EX  ›  Linux

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

  •  
  •   s609926202 ·
    shangdev · 2020-08-14 14:56:09 +08:00 · 2030 次点击
    这是一个创建于 1547 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我目前的脚本是:

    #!/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 {} \;
    

    这个,是可以成功的。。

    求指点

    第 1 条附言  ·  2020-08-14 15:37:17 +08:00

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

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

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

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

    $ 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  
       2020-08-14 15:23:38 +08:00
    find /home -mtime +7 -exec rm {} \\;
    尝试后面多加一个反斜线
    webs
        6
    webs  
       2020-08-16 10:03:30 +08:00
    find 后面可以带多个目录
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   946 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:46 · PVG 04:46 · LAX 12:46 · JFK 15:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.