假设我有一个现有的文件结构,如:
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
,但最终输入了很多愚蠢的代码......
答案 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"