递归bash目录

递归bash目录,bash,recursion,Bash,Recursion,我正在使用递归bash遍历每个目录。在每个目录中,文件以New_File_Naming.Y1.txt和New_File_Naming.Y2.txt的形式存在,我试图在每个目录中递归运行一个命令,如: find-键入-d-exec sh-c'(cd{}&&cat{}.Y1.txt{}.Y2.txt)';' 但是,我得到一个错误,文件名是相同的。任何帮助都将不胜感激 简单: find . -type d -exec sh -c '(cat {}/New_File_Naming.Y1.txt {}/N

我正在使用递归bash遍历每个目录。在每个目录中,文件以
New_File_Naming.Y1.txt
New_File_Naming.Y2.txt
的形式存在,我试图在每个目录中递归运行一个命令,如:

find-键入-d-exec sh-c'(cd{}&&cat{}.Y1.txt{}.Y2.txt)';'

但是,我得到一个错误,文件名是相同的。任何帮助都将不胜感激

简单:

find . -type d -exec sh -c '(cat {}/New_File_Naming.Y1.txt {}/New_File_Naming.Y2.txt)' ';'

应该有效。

请包含逐字记录错误消息。如果您要将目录名和文件名放在一起,则应使用
/
,而不是
。您好,sami,谢谢您的帮助,但我认为这只适用于一个目录,而不是递归。在每个目录中,我们都有Y1和Y2的文件。我认为您实际上应该执行
查找-如果您只想查找所有名为“New\u File\u Naming.*.txt”的文件,请将其命名为“New\u File\u Naming*”-exec…
。嗨,Sami,我没有使用“查找”命令-名称作为新文件,每个文件夹中的名称不同。例如,一个文件夹为New_File_naming_Y1.txt和New_File_naming_y2.txt,另一个文件夹为New_File_naming_something_Y1.txt和New_File_naming_something_y2.txt。问题是Y1和Y2对于文件名中的每个文件都是常量。答案仍然很明显:与其做一些过于复杂的事情,不如尝试创建一个只匹配您想要查找的文件的模式,然后将其输入到
find-name”“
。例如,如果您知道要查找的文件的名称中有“Y1”和“Y2”,只需使用
find-name“*Y1*”-name“*Y2*”-exec cat{}\