簡體   English   中英

bash: cd: 沒有那個文件或目錄

[英]bash: cd: No such file or directory

我正在編寫一個 bash 函數來跳轉到我最后編輯的文件夾。 在我的示例中,最后編輯的文件夾名為“daniel”。

bash 函數看起來不錯。

>>:~$ echo $(ls -d -1dt -- */ | head -n 1)
daniel/

我可以手動 cd 進入目錄。

>>:~$ cd daniel
>>:~/daniel$ 

但是我無法使用 bash 函數 cd 到目錄中。

>>:~$ cd $(ls -d -1dt -- */ | head -n 1)
bash: cd: daniel/: No such file or directory

原來有人在該服務器的 bashrc 中添加了alias ls=ls --color 一旦別名被刪除,我的函數就可以工作。 – 丹尼爾·譚

當您輸入不存在的路徑時,通常會拋出此錯誤。 請參閱-bash: cd: Desktop: No such file or directory

但是 $(ls -d -1dt -- */ | head -n 1) 在輸出中沒有錯誤。 因此,原因一定是當時 sh 和 bash 的不同用法。

就我而言,當我使用 bash 訪問文件夾時,我有一個 docker 容器出現該錯誤。 容器壞了,因為我在docker-compose up之后強行關閉了它,但它不起作用。 之后,在現有容器上,我只能使用 sh,而不能使用 bash。 我發現這是因為OCI 運行時 exec failed: exec failed: container_linux.go:348: starting container process cause "exec: "bash": executable file not found in $PATH": unknown 我猜 bash 的加載時間晚於 sh,並且在容器開始的早期錯誤中,只有 sh 被加載。

這很合適,因為您在 sh 中,可以從 >> 中看到。 使用 sh,一切都會按預期進行。 但是表達式被bash解決了。 無論出於何種原因,這可能沒有加載。


在 docker 中,使用 docker-compose,我也有類似的錯誤說sh: 1: cd: can't cd to /root/MYPROJECT 這可以通過使用在服務中安裝所需的卷來解決

services:
  host:
    volumes:
      - ~/MYPROJECT:/MYPROJECT # ~/path/on/host:/path/on/container

請參閱在 docker-compose 中安裝卷。 它是如何完成的? 以及如何使用 docker-compose 掛載主機目錄? 官方文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM