Bash 从多个目录复制具有相同基名称的文件

Bash 从多个目录复制具有相同基名称的文件,bash,sh,Bash,Sh,我有一堆目录,其中的文件具有相同的基本名称。我想用不同的basename复制它们,但复制到同一目录中。有没有一种简单的方法可以做到这一点?使用字符串替换: for name in oldbase*; do mv -v $name ${name/#oldbase/newbase} done 这意味着,例如,将oldbase123移动到newbase123。我最终使用了dirname: for file in `get_file_names`; do cp $file `dirname

我有一堆目录,其中的文件具有相同的基本名称。我想用不同的basename复制它们,但复制到同一目录中。有没有一种简单的方法可以做到这一点?

使用字符串替换:

for name in oldbase*; do
    mv -v $name ${name/#oldbase/newbase}
done

这意味着,例如,将oldbase123移动到newbase123。

我最终使用了dirname:

for file in `get_file_names`; do
  cp $file `dirname $file`"/newfilename"
done

你能举个例子说明你在找什么吗?你能举个例子说明你当前的目录结构,以及你想要的结果的目录结构/文件名吗?我有一个命令可以输出到stdout“a/B/myfile a/C/myfile D/E/myfile D/F/G/myfile”等等,例如,你想让它们都转到a_B_myfile,a_C_myfile,我的文件等等。?我们知道您希望它们在同一个目录中结束,但是您希望命名约定如何使它们不相互覆盖?