You need to enable JavaScript to run this app. 如何通过通配符路径批量向ami文件追加内容,无需输入完整路径
优惠活动
大模型
产品
解决方案
定价
更多

如何通过通配符路径批量向ami文件追加内容,无需输入完整路径

批量向指定目录下所有ami文件追加内容的解决方案

你不需要先递归搜索文件路径存入变量再操作,直接用find命令即可一步完成批量追加,这种方式比存变量更稳妥,能避免路径含特殊字符、空格时的解析错误。

你最初使用通配符加>>的写法无法实现预期效果:shell的追加重定向仅支持单个目标文件,你匹配到多个ami文件时,内容只会写入最后一个匹配到的文件。

以下是两种常用的实现方案:

  • 方案1:find + exec 全场景适配(支持文件名/路径含空格、特殊字符的情况)
    如果你要匹配/home/thomas下所有名为ami的普通文件,执行以下命令:

    find /home/thomas -type f -name "ami" -exec sh -c 'echo "aaa" >> "$1"' _ {} \;
    

    参数说明:

    • -type f 限定只匹配普通文件,避免误操作同名目录
    • 嵌套sh -c是为了正确处理每个匹配到的文件路径,_对应shell的$0占位符,{}是find返回的单条文件路径,对应$1
      如果你需要和最初的通配符逻辑一致,只匹配路径中包含*-bbb-*的ami文件,修改命令如下:
    find /home/thomas -type f -path "*/*-bbb-*/ami" -exec sh -c 'echo "aaa" >> "$1"' _ {} \;
    
  • 方案2:find + tee 写法更简洁
    你也可以用tee命令实现批量追加:

    find /home/thomas -type f -name "ami" -print0 | xargs -0 tee -a >/dev/null <<< "aaa"
    

    参数说明:

    • -print0和xargs -0用空字符分隔文件名,规避特殊字符导致的路径解析错误
    • tee -a表示以追加模式写入所有传入的文件路径,>/dev/null屏蔽终端的多余输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 04:36:08