如何在终端的文件夹中创建文件夹

如何在终端的文件夹中创建文件夹

我有一个名为 的文件夹music,里面有所有的艺术家文件夹。有没有办法用命令在所有艺术家文件夹中创建这些文件夹:1. Albums2. EP、 ?3. Singles4. Live

答案1

你可能想在这个上面加上花括号

为了论证这一点,我们假设 ./music 不存在

在 ./music 的基本目录中,我们将使用 -p 命令在需要的地方创建子目录,并使用花括号创建一个小数组

该命令-p是 parent 的缩写,如果更容易记住,你可以--parent改用

mkdir -p ./music/{"1. Albums","2. EP","3. Singles","4. Live"}

如果你想尝试一下,你可以

mkdir -p ./folder/prefix{a{1/only,2,3},b,c}suffix/more{z,y,x}

您有嵌套表达式,您可以将括号插入到字符串中间,也可以允许子目录跟随,并且可以针对特定数组指定子目录

我建议你在某个地方创建一个文件,你可以用这样的命令制作自己的模板并为它们提供描述

访问此页面以获取更多信息https://www.linuxjournal.com/content/bash-brace-expansionhttps://www.linux.com/tutorials/all-about-curly-braces-bash/

答案2

当然,在包含艺术家文件夹的音乐文件夹中执行此操作:

for artist in */; do
   for folder in "1. Albums" "2. EP" "3. Singles" "4. Live"; do
      mkdir "$artist/$folder"
   done
done

您可以在 CLI 上执行此操作,也可以将其添加#!/bin/sh为第一行并将其保存在文件中,使其成为 shell 脚本。不要忘记使文件可执行。

至于它的作用:它遍历*/当前目录中的所有目录(),然后对于每个目录,遍历所需的子文件夹(第二个for),然后创建所需的(相对)子文件夹。

相关内容