我有一个名为 /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