合并目录树中的所有文件

合并目录树中的所有文件

我有一个名为 /home/foobar/ 的目录,其中包含许多子目录中的大量文本文件。我需要生成一个文件,其中包含此目录结构中所有文件的合并内容。

合并文件的顺序并不重要。我可以先将所有文件复制到一个目录,然后进行合并,但在这种情况下,解决方案必须考虑到文件没有唯一的名称。

答案1

find对于和 来说这是一项简单的任务cat

 find <path_to_files> -type f -print0 | xargs -0 -I {} cat {} >> merged

所有文件和所有子文件夹中的内容<path_to_files>添加到merged。因此merged每次运行该命令时都会删除。

答案2

这应该可以工作(path/to/dir用基本目录的路径替换):

for i in $(find /path/to/dir -type "f" ); do cat "$i">>OUTPUT.txt;done

相关内容