You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求指导:编写定时Bash脚本自动归类MP4文件至对应目录

实现每小时自动整理MP4文件的Bash脚本

需求说明

  • 通过crontab每小时运行脚本
  • 扫描指定源目录(示例为/home/kali/Videos)下的所有.mp4文件
  • 在目标目录(可替换为需求中的/Other/Directory)为每个MP4文件创建与文件名(不含扩展名)同名的文件夹
  • 将对应的MP4文件移入新建的文件夹

当前脚本存在的问题

你提供的脚本有几处需要修正的问题:

  • 循环遍历了目录下所有文件,而非仅.mp4文件,会误处理其他类型文件
  • mv命令写在done之外,只会执行一次,无法处理所有文件
  • 未处理文件夹已存在的情况,重复运行会报错
  • 变量未加引号,遇到带空格的文件名会出错
  • 未按照需求将文件夹创建到指定的目标目录(当前是在源目录创建)

修正后的脚本

#!/bin/bash

# 定义源目录和目标目录,根据实际需求修改
SOURCE_DIR="/home/kali/Videos"
TARGET_DIR="/Other/Directory"

# 遍历源目录下的所有.mp4文件
for FILE in "$SOURCE_DIR"/*.mp4; do
    # 跳过不存在的文件(避免目录下无MP4时出现错误)
    [ -f "$FILE" ] || continue
    
    # 获取不含扩展名的文件名
    BN=$(basename "$FILE" .mp4)
    # 构建目标文件夹路径
    FOLDER_PATH="$TARGET_DIR/$BN"
    
    # 如果文件夹不存在则创建,-p参数确保父目录不存在时也能创建
    mkdir -p "$FOLDER_PATH"
    # 将MP4文件移动到目标文件夹
    mv "$FILE" "$FOLDER_PATH/"
done

设置crontab定时运行

  1. 打开crontab编辑界面:
crontab -e
  1. 添加以下内容,实现每小时运行一次脚本(替换/path/to/your/script.sh为脚本的实际路径):
0 * * * * /bin/bash /path/to/your/script.sh
  1. 保存退出即可,crontab会自动生效

内容的提问来源于stack exchange,提问作者Medic Behind You

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 14:06:18