如何同时复制文件和添加前缀?

How to copy files and add prefix at the same time?

我不熟悉 osx 终端命令。

我有一个包含许多包的 java 项目。

一些 classes 在不同的包中具有相同的名称。

我需要将所有 class 文件复制到一个目录中,所以我需要添加 每个文件对应的包前缀。

例如,我有 root/com/example1/test.javaroot/com/example2/test.java 两个 class 在不同的包中具有相同的名称。我需要将它们复制到 root 目录并添加前缀,使它们成为 root 目录中的 example1.test.javaexample2.test.java

如何使用终端命令执行此操作?

这个解决方案并不完美,但它应该可以满足您的需求(假设我正确理解了您的问题):

使用以下内容创建一个文件doCopy.sh

#!/bin/bash
origName=
newName=$(echo $origName | sed -e 's|/|.|g')
echo cp $origName $newName

然后使其可执行并为您的每个文件调用它:

chmod +x doCopy.sh
find root -type f -exec ./doCopy.sh {} \;

请验证将要打印的命令。如果您满意,您可以从 doCopy.sh 中删除 echo 并重新运行 find 以实际复制文件。