0
A
回答
1
我不完全确定你的意思是返回一个目录。根据什么zsh在这里,echo <(-)
会给你一个线索。它可能会打印/dev/fd/12
之类的东西,或者根据您的系统打印临时文件的名称。
<(...)
是一个zsh构造。 Zsh创建一个子shell并在命令stdout指向管道的情况下在子shell中运行命令。然后用/dev/fd
或/proc/self/fd
取代管道的另一端,具体取决于您的操作系统。 -
命令实际上是一个precommand修饰符,它不会单独执行任何操作。所以在它完成任何事情之后,它就会结束并随着它走向管道的尽头。 cat
读取文件结束并依次退出。比较cat <(echo hi)
之类的事情。
类似的形式=(...)
强制使用临时文件。如果您有像diff
这样的命令需要能够在文件中寻找随机位置,这非常有用。最后,有>(...)
这将输出到一个命令,有点像一个管道。
1
-
是一个precommand修饰符;根据man zsh
:
- The command is executed with a `-' prepended to its argv[0]
string.
在表达式cat <(-)
,这应该等于空指令(没有输出自动成功)运行,如同其被命名为-
。不过,我不确定如何获得与旧工作目录相关的任何输出。 cd -
将打印新工作目录, but
- doesn't trigger a directory change even with
auto_cd enabled (and
auto_cd shouldn't apply inside a process substitution anyway, since
SHIN_STDIN`未设置)。
(道歉。这可能是更适合作为关于这个问题的评论,而不是一个答案)
相关问题
- 1. 返回目录
- 2. ZSH目录扩展('..'到'../')
- 3. 返回主目录
- 4. rake db:migrate返回“rake:是一个目录”?
- 5. 需要wp-load.php 3个目录返回
- 6. Directory.GetDirectories不返回子目录
- 7. Tools.DiffFiles返回错误<FileName>不存在或是目录
- 8. 的File.List()返回null目录
- 9. 用zsh + Prezto改变目录颜色
- 10. 基于目录的ZSH完成
- 11. zsh:找出当前目录的VCS
- 12. Undertow从目录中返回数据
- 13. cat file | ... vs ... <文件
- 14. mysql返回记录在哪里条款
- 15. main()中的返回返回到哪里?
- 16. 返回每个子目录中的第一个文件
- 17. getTrace返回哪个订单?
- 18. FileDialog使用哪个目录?
- 19. clickonce发布哪个目录?
- 20. 返回返回最后一个项目
- 21. 改变目录回声“目录:<pwd>”
- 22. `cat <file`和`cat file`有什么区别?
- 23. GetFiles()不返回目录C中的第一个文件名#
- 24. 为什么不使用<< EOF代替cat << EOF?
- 25. WCF - 返回多个记录
- 26. 在现有目录返回404错误
- 27. 如何返回当前目录(“。”),父目录(“..”)的URL
- 28. (目录文件)意外返回零
- 29. 返回包含文件的目录
- 30. fileExistsAtPath为存在的目录返回NO
是,'回声<( - )'将打印'的/ proc /自/ FD/11',在我的系统上,这返回$ OLDPWD。我想知道这是否意外,或者是否可以预料。我理解你的解释方式,但不是(1)为什么返回的东西不是一些临时不存在的文件句柄,也不是(2)获得$ OLDPWD的一致性。 –
我想你已经有'-'别名到'popd'或'cd -'之类的东西了。除非设置了'pushd_silent'选项,否则它们会打印新的目录。但是因为'<(...)'中的命令在子shell中运行,所以目录的更改不会在父目录中生效。我认为你使用的是像oh-my-zsh这样的插件框架,如果你有别名,你不知道在那里。 – okapi
啊,就是这样! zsh中的'alias'显示''''确实是'cd -'的缩写,可能确实是由'oh-my-zsh'中的一个(默认)插件引入的。 –