首页 > 解决方案 > 连接不同目录中同名文件的更快方法

问题描述

我正在尝试完全按照这篇文章中的方式做,并使用了公认的答案。我的问题是,有没有更快的选择?这实际上已经运行了几个小时,并且仍在创建新的空文件。我有数百个文件要连接。谢谢!

https://unix.stackexchange.com/questions/435794/create-new-concatenated-files-of-same-name-in-multiple-directories

这是代码:

find . -type f -path "*/*/*/*/$name" 
-exec cat {} + >"New_Dir/$name" 
done < list_to_concat.txt

我读过类似的帖子,说循环可能更快,但无法使其正常工作。我在这里用回声测试:

for i in */*/*/*/*.txt; 
do echo find -name $i -exec bash -c cat $i >>
"New_Dir/$i"; done

标签: linuxperformancefindconcatenation

解决方案


如果这对有一天搜索的其他人有用,我学会了一种使用 xargs 和 ls 更快的方法:

while read -r name
do
ls */*/*/*/$name.txt | xargs cat > $name.combine
done <List_to_combine.txt

推荐阅读