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. C傳遞cat返回值
- 2. 返回目錄
- 3. ZSH目錄擴展('..'到'../')
- 4. PHP - 返回目錄
- 5. 返回主目錄
- 6. 導航到ZSH(bash)中的目錄
- 7. zsh - 在glob循環中包含目錄
- 8. 解鏈到一個目錄 - 返回
- 9. rake db:migrate返回「rake:是一個目錄」?
- 10. java.io.File.length()返回一個目錄是什麼?
- 11. 需要wp-load.php 3個目錄返回
- 12. 如何從Java的工作目錄返回一個目錄?
- 13. Directory.GetDirectories不返回子目錄
- 14. 活動目錄返回值
- 15. ContactsApp getFullName()返回從目錄
- 16. zsh別名失敗的「sudo殺-HUP`cat/usr/local/var/run/nginx.pid`」
- 17. Tools.DiffFiles返回錯誤<FileName>不存在或是目錄
- 18. 返回圖像的目錄
- 19. GetDirectories返回路徑\\目錄
- 20. unix中的cat文件名和cat <filename的區別
- 21. 哪個異常會返回?
- 22. `cat <does_not_exist | perl`成功
- 23. Undertow從目錄中返回數據
- 24. mysql返回記錄在哪裏條款
- 25. zsh compinit:不安全的目錄
- 26. zsh:找出當前目錄的VCS
- 27. 基於目錄的ZSH完成
- 28. 用zsh + Prezto改變目錄顏色
- 29. main()中的返回返回到哪裏?
- 30. cat file | ... vs ... <文件
是,'回聲<( - )'將打印'的/ proc /自/ FD/11',在我的系統上,這返回$ OLDPWD。我想知道這是否意外,或者是否可以預料。我理解你的解釋方式,但不是(1)爲什麼返回的東西不是一些臨時不存在的文件句柄,也不是(2)獲得$ OLDPWD的一致性。 –
我想你已經有'-'別名到'popd'或'cd -'之類的東西了。除非設置了'pushd_silent'選項,否則它們會打印新的目錄。但是因爲'<(...)'中的命令在子shell中運行,所以目錄的更改不會在父目錄中生效。我認爲你使用的是像oh-my-zsh這樣的插件框架,如果你有別名,你不知道在那裏。 – okapi
啊,就是這樣! zsh中的'alias'顯示''''確實是'cd -'的縮寫,可能確實是由'oh-my-zsh'中的一個(默認)插件引入的。 –