从数组修改目录结构

时间:2017-12-10 23:48:38

标签: bash macos shell

假设我有一个现有的文件结构,如:

1234567890

com/example/test/file1.txt com/example/test/file2.sh

等字符串的目录数组

我想使用directories=(net john doe foo)修改上面的文件夹结构,因此最终结果是:

bash

目录数量始终为2或更多。文件类型可以是任何内容。我尝试使用net/john/doe/foo/file1.txt net/john/doe/foo/file2.sh ,但最终输入了很多愚蠢的代码......

1 个答案:

答案 0 :(得分:3)

尝试:

newdir=$(IFS=/; echo "${directories[*]}")
mkdir -p "$newdir"
mv com/example/test/* "$newdir"

替代

另一种创建newdir的方法是:

newdir=$(printf '%s/' "${directories[@]}")

另外,如果上面com/example/test/*命令中的mv过于宽泛,那么:

mv com/example/test/{file1.txt,file2.sh} "$newdir"