如何将数百个文件从多个子目录传递给cat?

我有一个目录充满了子目录,每个子目录中有一些文本文件(即深度为1)。

我想把所有这些文件(没有特别的顺序)放到一个文件中:

cat file1 file2.... fileN >new.txt 

是否有一个bash shell一行可以列出这些目录内的所有文件,并将它们传递给猫?

 find . -type f -print0 | xargs -0 cat 

find将递归地搜索文件( -type f )并将它们的名称打印为空字符串( -print0 )。

xargs会从stdin读取以null结尾的字符串( -0 )并将它们作为参数传递给cat

这个怎么样?

 find . -name '*.txt' -exec cat {} \; > concatenated.txt 

当然,它叫猫一堆,而不是一次,但效果是一样的。