ste*_*ver 12
如果相关线程中的所有答案都不是您要查找的,您可以考虑使用该find命令,该命令将从给定的父项向下递归搜索目录。您可以指定exec要对其找到的每个匹配文件执行的操作 - 在这种情况下,您希望它对cp新的目标目录执行
find /path/to/parent -name '*.txt' -exec cp -t /path/to/newdir {} +
Run Code Online (Sandbox Code Playgroud)
该{}被替换的文件,它定位,并+在最后它会导致批量他们,以免溢出的是参数的最大数量cp可以在一个命令处理。在newdir必须已经存在。
由于您要将文件从多个位置移动到一个位置,因此某些名称可能不唯一,因此您可能需要注意防止较早的副本被较晚的副本覆盖 - 您可以这样做通过添加一个backup选项
find /path/to/parent -name '*.txt' -exec cp --backup=numbered -t /path/to/newdir {} +
Run Code Online (Sandbox Code Playgroud)
这将为每个重复文件添加一个简单的编号后缀。如果您想在复制文件时查看文件的运行报告,您可以添加-v或--verbose标志cp。