将带有文件夹的文件移动到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行,它用匹配模式的结果替换字符串,如下所示:${/}