将字符串与数组连接以递归复制bash中的文件

时间:2018-10-23 19:00:00

标签: linux bash

我在字符串和数组之间有串联问题 我想复制数组中存储的目录中包含的所有文件,我的命令处于循环状态(以递归方式复制我的文件)

yes | cp -rf "./$WORK_DIR/${array[$i]}/"* $DEST_DIR

我的数组:

array=("My folder" "...") 

我在数组中有几个文件夹名称(它们的名称中都有空格),我想将它们附加到$ WORK_DIR上,以便可以复制 cp 的文件。 但是我总是有以下错误

cp: impossible to evaluate './WORKDIR/my': No such files or folders
cp: impossible to evaluate 'folder/*': No such files or folders

1 个答案:

答案 0 :(得分:0)

这对我有用

#!/bin/bash

arr=("My folder" "This is a test")

i=0
while [[ ${i} -lt ${#arr[@]} ]]; do
    echo ${arr[${i}]}
    cp -rfv ./source/"${arr[${i}]}"/* ./dest/.
    (( i++ ))
done

exit 0

我运行了脚本。它给了我以下输出:

My folder
'./source/My folder/blah-folder' -> './dest/./blah-folder'
'./source/My folder/foo-folder' -> './dest/./foo-folder'
This is a test
'./source/This is a test/blah-this' -> './dest/./blah-this'
'./source/This is a test/foo-this' -> './dest/./foo-this'

不确定确切的区别,但希望能有所帮助。