将带有文件夹的文件移动到bash中的新文件夹

将带有文件夹的文件移动到bash中的新文件夹,bash,Bash,假设我们有一堆来自 find development/js-name“*.js” 它返回类似于 development/js/folder1/*.js development/js/folder2/*.js 我们需要转移到 # as you can see folder 1 & 2 is the same but diffrent folder production/js/folder1/*.js production/js/folder2/*.js 我们如何像上面那样在bash中移

假设我们有一堆来自
find development/js-name“*.js”

它返回类似于

development/js/folder1/*.js
development/js/folder2/*.js
我们需要转移到

# as you can see folder 1 & 2 is the same but diffrent folder
production/js/folder1/*.js
production/js/folder2/*.js
我们如何像上面那样在bash中移动文件

谢谢

编辑*这是我要做的

#!/bin/bash
devel_file_js=`find ../../development/js -name "*.js"`
production_folder=`../../production/js`
for i in $devel_file_js; 
do 
    mv #hmm
done
亚当·拉马丹

你是说像“mv”:p

您可以执行以下操作:

#!/bin/bash
dev_folder="../../development/js";
production_folder="../../production/js"

for old_location in $(find $dev_folder -name "*.js") 
do 
    new_location=$(echo ${old_location/${dev_folder}/${production_folder}/})
    new_dirname=$(dirname ${new_location})

    echo "Moving ${old_location} to ${new_location}"

    # Create folder if not exists
    if [[ ! -d ${new_dirname} ]]
    then
        mkdir -p ${new_dirname}
    fi

    # mv ${old_location} ${new_location}
done

是的,但是我把逻辑和保留文件夹名搞混了。我想到的是使用regex并搜索development/js,用production/js或类似的东西来更改它。wew这很复杂,${}如何工作?工作很好!但是mkdir仍然有缺陷,当它位于递归文件夹中时无法工作,有一个正确吗?很好,很抱歉缺少-p选项。对于第7行,它用匹配模式的结果替换字符串,如下所示:${/}