BASH脚本:复制包含在不同父文件夹中的多个文件(相同名称)

BASH脚本:复制包含在不同父文件夹中的多个文件(相同名称),bash,Bash,我试图把Jaypal的答案变成一个bash脚本 () 这样: #!/bin/bash pwd mkdir -v ../g shopt -s globstar for file in ./**/file.txt do echo "will copy $file" cp -v --parents "$file" ../g done 但它不起作用!(它只创建空文件夹g) 可能是什么问题? 注意:脚本位于f文件夹中 谢谢!:) 回答标题问题: source_dir=/some/dir

我试图把Jaypal的答案变成一个bash脚本 () 这样:

#!/bin/bash
pwd
mkdir -v ../g
shopt -s globstar
for file in ./**/file.txt
do
    echo "will copy $file"
    cp -v --parents "$file" ../g
done
但它不起作用!(它只创建空文件夹g)
可能是什么问题?
注意:脚本位于f文件夹中


谢谢!:)

回答标题问题:

source_dir=/some/dir
target_dir=/some/other/dir
file_name=myfile.txt

cd $target_dir
while read path; do
  mkdir -p $(dirname $path)
  cp $source_dir/$path $target_dir/$path
done < <(cd $source_dir; find . -name $file_name -type f)
source\u dir=/some/dir
target_dir=/some/other/dir
file_name=myfile.txt
cd$target_dir
同时读取路径;做
mkdir-p$(dirname$路径)
cp$source\u dir/$path$target\u dir/$path

完成<回答标题问题:

source_dir=/some/dir
target_dir=/some/other/dir
file_name=myfile.txt

cd $target_dir
while read path; do
  mkdir -p $(dirname $path)
  cp $source_dir/$path $target_dir/$path
done < <(cd $source_dir; find . -name $file_name -type f)
source\u dir=/some/dir
target_dir=/some/other/dir
file_name=myfile.txt
cd$target_dir
同时读取路径;做
mkdir-p$(dirname$路径)
cp$source\u dir/$path$target\u dir/$path
完成<由于功能请求仍然被拒绝,我在这里复制上述解决方案


好的,我只用1*in解决了文件in./*/file.txt的问题。这样看来,它似乎工作正常。谢谢你哦,埃斯林!:)-fibon82

由于功能请求被拒绝,我在这里复制上述解决方案


好的,我只用1*in解决了文件in./*/file.txt的问题。这样看来,它似乎工作正常。谢谢你哦,埃斯林!:)-fibon82

可能重复我提出了一个新问题,因为我认为这与其他问题不同。。。在这里,我问如何将Jaypal的答案转换为bash脚本,这是命令行的命令。。。我不想问如何复制文件。。。但是我应该合并这两个问题吗?请在循环中添加脚本
pwd
(在开头)和
echo“$file”
。然后,使用结果。是的。请重新运行并给出结果。我获得/home/fibon82/f,然后控制台没有回复。。。我认为没有达到echo指令…好的,我只使用1*in
解决了文件in./*/file.txt
。这样看来,它似乎工作正常。谢谢你哦,埃斯林!:)可能的重复我创建了一个新问题,因为我认为这与其他问题不同。。。在这里,我问如何将Jaypal的答案转换为bash脚本,这是命令行的命令。。。我不想问如何复制文件。。。但是我应该合并这两个问题吗?请在循环中添加脚本
pwd
(在开头)和
echo“$file”
。然后,使用结果。是的。请重新运行并给出结果。我获得/home/fibon82/f,然后控制台没有回复。。。我认为没有达到echo指令…好的,我只使用1*in
解决了文件in./*/file.txt
。这样看来,它似乎工作正常。谢谢你哦,埃斯林!:)