如何通过终端自动创建文件和文件夹?

时间:2016-09-01 22:39:56

标签: linux windows git bash

分组/通用Linux命令如何在Windows环境中运行? (使用Windows RT 2012)。我正在使用Git BASH但无法实现以下目标:

在项目根目录下,我尝试以下操作来创建lib文件夹及其子文件夹

mkdir -p lib/{login, signup, users, posts}
touch !!:2/{package.json, index.js}

以下一个有效,但我想在每个登录,注册,用户,帖子文件夹中创建这两个文件

touch package.json index.js 

由于

修改:Source

2 个答案:

答案 0 :(得分:2)

空间是恶棍

mkdir -p lib/{login,signup,users,posts} #no spaces in between comma & folder
touch !!:2/{package.json,index.js}

这扩展为

touch lib/{login,signup,users,posts}/{package.json,index.js}

会按预期工作。

揭秘

touch !!:2/{package.json,index.js}

!!扩展到最后一个命令运行,:2扩展到第三个参数,因为参数计数从零开始。参数也是 默认情况下用空格分隔。在

mkdir -p lib/{login, signup, users, posts} 

第三个参数原来是lib/{login,而不是预期lib/{login,signup,users,posts},因此touch命令扩展为

touch lib/{login,/{package.json, index.js}

这不是理想的扩展

答案 1 :(得分:0)

请不要因使用eval ...

而杀了我
dirs='lib/{login,signup,users,posts}';
files='{package.json,index.js}';
eval "mkdir -p $dirs";
eval "touch $dirs/$files";
find .;
## .
## ./lib
## ./lib/login
## ./lib/login/index.js
## ./lib/login/package.json
## ./lib/posts
## ./lib/posts/index.js
## ./lib/posts/package.json
## ./lib/signup
## ./lib/signup/index.js
## ./lib/signup/package.json
## ./lib/users
## ./lib/users/index.js
## ./lib/users/package.json