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

Linux Samba共享目录下批量给文件添加分类前缀重命名需求

Linux Samba目录批量文件分类重命名方案

需求概述

  • 针对Samba共享指定目录下的当前文件(不含子目录)批量重命名
  • 保留原文件名、扩展名及大小写,仅添加指定分类前缀
  • 按文件名中的关键词(不区分大小写)匹配分类,支持多关键词(如python、ansible、git)
  • 要求无错误、无数据丢失

示例对比

原文件

a guide to Python.pdf
stay busy with python.epub
ansible tips and tricks.azw3
Ansible secrets.mobi
ANSIBLE for beginners.
_GIT cheat sheet dark (FINAL).png

目标效果

python - a guide to Python.pdf
python - stay busy with python.epub
ansible - ansible tips and tricks.azw3
ansible - Ansible secrets.mobi
ansible - ANSIBLE for beginners.
git - _GIT cheat sheet dark (FINAL).png

优化解决方案

1. 多关键词批量处理脚本

使用Bash脚本实现多关键词匹配、避免重复处理、防止文件覆盖:

#!/bin/bash

# 定义关键词与对应前缀的映射(关键词不区分大小写)
declare -A keyword_map=(
    ["python"]="python - "
    ["ansible"]="ansible - "
    ["git"]="git - "
)

# 开启不区分大小写的文件名匹配
shopt -s nocaseglob

# 遍历当前目录下的所有文件(跳过目录)
for file in *; do
    [ -f "$file" ] || continue
    
    # 跳过已添加过前缀的文件,避免重复处理
    if [[ "$file" =~ ^(python|ansible|git) - ]]; then
        continue
    fi
    
    # 匹配关键词并执行重命名
    for keyword in "${!keyword_map[@]}"; do
        if [[ "$file" == *"$keyword"* ]]; then
            new_name="${keyword_map[$keyword]}$file"
            # 检查新文件是否存在,防止覆盖数据
            if [ ! -e "$new_name" ]; then
                mv -v "$file" "$new_name"
            else
                echo "⚠️ 警告:$new_name 已存在,跳过 $file"
            fi
            break
        fi
    done
done

# 关闭不区分大小写匹配
shopt -u nocaseglob

2. 脚本使用说明

  • 将脚本保存为rename_files.sh,赋予执行权限:chmod +x rename_files.sh
  • 切换到目标Samba目录,执行脚本:./rename_files.sh
  • 建议先复制部分文件到测试目录验证效果,再批量处理

3. 原有命令的局限性

你之前尝试的单关键词命令:

for file in *nsible*; do mv "$file" "ansible - $file"; done;

存在以下问题:

  • 仅支持单个关键词匹配,无法批量处理多分类
  • 默认区分大小写,无法匹配Ansible、ANSIBLE这类变体
  • 无重复处理防护,重复执行会多次添加前缀
  • 未检查文件是否存在,可能导致数据覆盖

注意事项

  • 确保当前用户对Samba目录拥有读写权限
  • 脚本仅处理当前目录的文件,不会遍历子目录
  • 若文件匹配多个关键词,会优先使用映射中先定义的分类前缀

内容的提问来源于stack exchange,提问作者Hr13aale

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 09:48:21