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

如何利用find执行多命令并生成含文件名与内容的合并文件

解决方案

要实现这个需求,你可以用find命令结合-exec参数,对每个匹配的文件执行「输出文件名+输出文件内容」的操作,最终将结果写入目标文件。以下是两种常用实现方式:

方式一:使用find -exec直接执行

find . -maxdepth 1 -type f -name "z*" -exec sh -c 'echo "--- {} ---"; cat {}' \; > combined_result.txt

各参数说明:

  • .:从当前目录开始查找
  • -maxdepth 1:仅查找当前目录(如果需要递归遍历子目录,去掉这个参数即可)
  • -type f:只匹配普通文件,排除目录、链接等非文件类型
  • -name "z*":匹配所有以z开头的文件名
  • -exec sh -c '...' \;:对每个找到的文件执行shell命令——先打印带分隔标记的文件名(方便区分不同文件的内容),再输出文件内容
  • > combined_result.txt:将所有输出重定向到目标结果文件

方式二:结合xargs实现

如果习惯用xargs,也可以这样写:

find . -maxdepth 1 -type f -name "z*" | xargs -I {} sh -c 'echo "File: {}"; cat {}' > combined_result.txt

这里-I {}表示用find输出的每个文件名替换命令中的{},效果和第一种方式一致。

如果不需要文件名的分隔标记,直接输出文件名后接内容,可以把echo部分改成echo {}即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 15:50:38