如何同时复制文件和添加前缀?
How to copy files and add prefix at the same time?
我不熟悉 osx 终端命令。
我有一个包含许多包的 java 项目。
一些 classes 在不同的包中具有相同的名称。
我需要将所有 class 文件复制到一个目录中,所以我需要添加
每个文件对应的包前缀。
例如,我有 root/com/example1/test.java
和 root/com/example2/test.java
两个 class 在不同的包中具有相同的名称。我需要将它们复制到 root
目录并添加前缀,使它们成为 root
目录中的 example1.test.java
和 example2.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
以实际复制文件。
我不熟悉 osx 终端命令。
我有一个包含许多包的 java 项目。
一些 classes 在不同的包中具有相同的名称。
我需要将所有 class 文件复制到一个目录中,所以我需要添加 每个文件对应的包前缀。
例如,我有 root/com/example1/test.java
和 root/com/example2/test.java
两个 class 在不同的包中具有相同的名称。我需要将它们复制到 root
目录并添加前缀,使它们成为 root
目录中的 example1.test.java
和 example2.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
以实际复制文件。