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

Unix环境下复制目录中所有.txt文件并批量重命名为<filename>_2.txt的命令

批量复制并重命名TXT文件的Unix命令方案

没问题,这有几个实用的方法帮你完成批量复制并重命名.txt文件的需求,在Linux、macOS等Unix-like系统上都能正常工作:

方法一:Bash For循环(兼容性最强)

这是最稳妥的方式,几乎所有系统都支持,还能完美处理带空格或特殊字符的文件名:

for file in *.txt; do
    # 加上-n参数可避免覆盖已存在的目标文件,不需要的话可以去掉
    cp -n "$file" "${file%.txt}_2.txt"
done

简单解释:

  • *.txt:匹配当前目录下所有以.txt结尾的文件
  • "$file":用引号包裹原文件名,防止空格、特殊符号导致命令执行出错
  • ${file%.txt}:Bash的参数扩展语法,自动去掉文件名末尾的.txt后缀
  • 最后拼接_2.txt,就得到了abc_2.txt这类符合要求的新文件名

方法二:结合Find命令(适合遍历子目录的场景)

如果你的.txt文件分散在子目录中,或者需要更精准的文件筛选,可以用find命令:

# -maxdepth 1 限制只处理当前目录,去掉该参数会遍历所有子目录
find . -maxdepth 1 -type f -name "*.txt" -exec sh -c 'cp -n "$0" "${0%.txt}_2.txt"' {} \;

小技巧

执行命令前可以先把cp换成echo,预览一下将要执行的操作,确认文件名是否符合预期:

for file in *.txt; do
    echo "cp $file ${file%.txt}_2.txt"
done

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 13:13:11