如何用一条Linux命令创建目录并在其中创建文件?
解决方法
你的问题出在命令的分隔和执行逻辑上——之前的写法没正确拆分命令,而且没进入新建的AAA目录就执行touch,所以文件才会跑到原目录。
给你几种可行的一行命令写法:
- 按原步骤依次执行(仅当前一个命令成功时,才执行下一个):
cd ../ && mkdir AAA && cd AAA && touch file.a file.b
- 用
&&连接命令,会先切换到上级目录,创建AAA文件夹,进入该文件夹,最后在里面创建两个目标文件。
- 不改变当前工作目录,直接指定路径创建:
mkdir -p ../AAA && touch ../AAA/file.a ../AAA/file.b
mkdir -p会自动创建不存在的父目录(这里上级目录本就存在,作用是确保AAA目录创建成功),之后通过相对路径直接创建文件,你的当前shell目录不会被改动。
- 用子shell执行目录内操作(不影响当前shell的工作目录):
cd ../ && mkdir AAA && (cd AAA && touch file.a file.b)
- 括号内的命令会在子shell中运行,执行完毕后自动回到上级目录,不会让你的当前shell停留在
AAA里。
内容的提问来源于stack exchange,提问作者Islinn true
相关产品推荐
相关产品推荐

