Bash 在文件路径之前展平java项目目录结构
我正在尝试编写一个脚本(最好是在bash中)来扁平化javaprojet目录结构,并在文件路径的前面加上前缀。例如:Bash 在文件路径之前展平java项目目录结构,bash,scripting,directory,flatten,Bash,Scripting,Directory,Flatten,我正在尝试编写一个脚本(最好是在bash中)来扁平化javaprojet目录结构,并在文件路径的前面加上前缀。例如: | src | org | apache | file2.java | file1.java 将导致: | src | org|apache|file2.java | org|file1.java 脚本应该是递归的,因为目录可能有许多子文件夹 cd src for i in $(find . - name '*.java') ; do
| src
| org
| apache
| file2.java
| file1.java
将导致:
| src
| org|apache|file2.java
| org|file1.java
脚本应该是递归的,因为目录可能有许多子文件夹
cd src
for i in $(find . - name '*.java') ; do
echo cp \"$i\" $(echo "$i" | tr / _)
done
如果它看起来不错(如果文件名包含空格,可能会呕吐),将结果传递到
sh
java文件名是否可能包含空格?顺便问一下,当我从$i变量中删除第一个echo和引号并运行脚本时,它没有做任何事情。find…|当读取-r i
而不是时。。。如果文件名有空格,“查找”
将起作用。我将如何适应您的解决方案?