如何在 Linux 终端中一次在特定目录中创建多个文件(具有不同的名称)

如何在 Linux 终端中一次在特定目录中创建多个文件(具有不同的名称)

我当前的目录结构

├── index.html
├── src
│   └── App.js
└── README.md

现在,我想在名为 的新目录中创建文件 和App.js。因此,我的最终结构将是:Body.jsFooter.jscomponents

├── 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

相关内容