我当前的目录结构
├── index.html
├── src
│ └── App.js
└── README.md
现在,我想在名为 的新目录中创建文件 和App.js
。因此,我的最终结构将是:Body.js
Footer.js
components
├── index.html
├── src
│ ├── App.js
│ └── components
│ ├── Header.js
│ ├── Body.js
│ └── Footer.js
└── README.md
我尝试了这样的事情:
mkdir -p src/components && touch $_/Header.js
touch src/components/Body.js src/components/Footer.js
从参考我知道要一次创建多个文件,我们可以使用
touch newfilename{1..N}
但是,我的文件名有不同的名字。
有没有办法使用终端的单个命令在新目录中创建所有这些文件?
答案1
是的,您可以使用终端在单个命令中创建具有不同名称的多个文件。以下是执行您想要的操作的示例命令:
mkdir -p src/components && touch src/components/{Header,Body,Footer}.js
此命令首先使用 在 src 目录中创建 components 目录mkdir -p src/components
。然后,它使用touch
命令在 components 目录中创建 Header.js、Body.js 和 Footer.js 文件。 是{Header,Body,Footer}
括号扩展,它允许您使用单个模式创建多个文件名。
答案2
括号扩展由 shell 完成,与 touch 本身无关。因此,文件名称不同并不重要。即这也可以工作:
mkdir -p src/components && touch src/components/Header.js src/components/Body.js src/components/Footer.js
但显然,如果可以的话,使用括号扩展是有意义的。我的观点是,即使文件的名称完全不同,这仍然有效:
touch a b c d