我有一个目录充满了子目录,每个子目录中有一些文本文件(即深度为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
当然,它叫猫一堆,而不是一次,但效果是一样的。