Unix 是否有办法在同一目录路径中的一个命令中创建两个文件?

Unix 是否有办法在同一目录路径中的一个命令中创建两个文件?,unix,zsh,Unix,Zsh,假设我正在做这样的事情: touch app/api/api.rb && touch app/api/user/data.rb 有没有什么方法可以缩短这个时间,这样我就不必重复touch-app/api/部分?我尝试了触摸app/api/api.rb{/user/data.rb},但它不起作用。zsh支持 使用子shell: marc@panic:~$ (cd foo ; pwd); pwd ^-#1 ^-#2 /home/m

假设我正在做这样的事情:

touch app/api/api.rb && touch app/api/user/data.rb
有没有什么方法可以缩短这个时间,这样我就不必重复
touch-app/api/
部分?我尝试了触摸app/api/api.rb{/user/data.rb},但它不起作用。

zsh
支持

使用子shell:

marc@panic:~$ (cd foo ; pwd); pwd
                         ^-#1  ^-#2
/home/marc/foo  <-#1
/home/marc      <-#2
marc@panic:~$(cd foo;pwd);pwd
^-#1  ^-#2

/home/marc/foo
(cd-app/api;touch-api.rb-data.rb)
@MarcB别忘了返回当前文件夹…谢谢,但它们不在同一目录中
api.rb
app/api/
数据中。rb
app/api/user/
中,我不想更改目录,因为这样我只需在之后写另一行就可以更改回目录,这实际上增加了流程的另一个步骤,而不是缩短一步流程。@Crowley:
()
创建子shell,因此当控件返回到父对象时,子shell中的任何dir更改都将丢失。@katgus:then
touch api.rb user/data.rb
。当
()
创建的子shell退出时,cd将“撤消”,您将立即返回到开始的位置。否则,是的,您必须为这两个文件指定完整路径,因为您处理的是“外部目录”。这是没办法的。cd到您想工作的地方,或者每次都必须包含该工作地点的完整路径。谢谢!这正是我要找的!
marc@panic:~$ (cd foo ; pwd); pwd
                         ^-#1  ^-#2
/home/marc/foo  <-#1
/home/marc      <-#2