我想在每个子目录中创建2个目录(基本上是一个嵌套循环)。
AKA:我想在每个音频和视频文件夹current folder structure
我尝试了以下bash命令:
for dir in */; do
for dir in */; do
mkdir -- "$dir"/{Trimmed,Original};
done
done
但是该代码在每个父文件夹(Cog和Personality)中都放置了两个文件夹,但在子目录(AudioCog,VideoCog,AudioPersonality,VideoPersonality)中没有放置任何文件夹
答案 0 :(得分:1)
dir
的值。for dir in */
实际上也不会输入该目录,因此,使用double循环实现的所有操作都将遍历中的每个目录。 N次,每个子目录一次。作为@thatotherguy wrote,您需要for dir in */*/
。rm
不创建任何目录。为此,您需要mkdir
。答案 1 :(得分:1)
使用数组和parameter expansion的其他可能方式:
f=(./*/*/); mkdir "${f[@]/%/original}" "${f[@]/%/trimmed}"
或使用find
:
find . -mindepth 2 -maxdepth 2 -type d -exec mkdir {}/{original,trimmed} \;