# linux 清理指定目录下,指定时间的历史文件

如何使用这个脚本

1、创建脚本
cleanup.sh

#!/bin/bash

# 默认值
DEFAULT_DIR="/path/to/default/directory"
DEFAULT_DAYS=7

# 使用方法提示
usage() {
    echo "Usage: $0 [-d directory] [-t days]"
    echo "  -d  目标目录 (默认为: ${DEFAULT_DIR})"
    echo "  -t  文件保留天数 (默认为: ${DEFAULT_DAYS} 天)"
    exit 1
}

# 参数解析
while getopts ":d:t:" opt; do
    case ${opt} in
        d )
            TARGET_DIR=$OPTARG
            ;;
        t )
            DAYS=$OPTARG
            ;;
        \? )
            usage
            ;;
        : )
            echo "Error: -${OPTARG} requires an argument."
            usage
            ;;
    esac
done

# 如果没有提供目标目录或天数,则使用默认值
TARGET_DIR=${TARGET_DIR:-$DEFAULT_DIR}
DAYS=${DAYS:-$DEFAULT_DAYS}

# 检查目标目录是否存在
if [ ! -d "${TARGET_DIR}" ]; then
    echo "Error: Directory '${TARGET_DIR}' does not exist."
    exit 1
fi

# 执行清理操作
find "${TARGET_DIR}" -type f -mtime +${DAYS} -exec rm -f {} \;

echo "Cleaned files older than ${DAYS} days in ${TARGET_DIR}"


2、给这个脚本执行权限

chmod +x cleanup.sh


3、执行使用
默认设置

./cleanup.sh


指定不同的目录和天数:

./cleanup.sh -d /path/to/another/directory -t 3

扩展

getopts 是 Bash 内置的一个命令,因此在标准的 Bash 环境中是默认支持的,无需额外安装。Bash 是大多数 Linux 发行版的默认 shell,所以你可以在几乎所有的 Linux 系统上直接使用 getopts。

验证 getopts 是否可用
你可以通过以下命令来验证 getopts 是否在你的系统上可用:

type getopts

如果 getopts 是可用的,你会看到类似以下的输出:

getopts is a shell builtin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值