[英]Go to bottom most directory?
我正在使用包含很多嵌套文件夾的目錄,例如/ path / to / project / users / me / tutorial
我在這里找到了一種瀏覽文件夾的好方法: https : //superuser.com/questions/449687/using-cd-to-go-up-multiple-directory-levels
但我想知道如何解決這些問題。 這似乎要困難得多,但是有關目錄結構的幾點幫助。 每個目錄中僅包含另一個目錄,或者一個目錄和一個README。
我要查找的目錄看起來更像一個傳統項目,並且其中可能包含隨機目錄和文件(肯定比其他任何更高的目錄都多)。
現在,我正在使用u ..遞歸bash函數cd進入其下方的唯一目錄中的解決方案,直到有0或2+個目錄可以循環通過。 這還行不通..
我使這個復雜化了嗎? 我覺得使用find可能會有一些不錯的解決方案。 理想情況下,我希望能夠鍵入以下內容:
down path
其中path是頂級文件夾。 這將帶我進入最下面的文件夾教程。
有一個名為CDPATH
的環境變量。 cd
使用此變量的方式與可執行文件在搜索路徑名時使用PATH
方式相同。
例如,如果您具有以下目錄:
/path/to/project/users/me
/path/to/project/users/me/tutorial
/path/to/project/users/him
/path/to/project/users/him/test
/path/to/project/users/her
/path/to/project/users/her/uat
/path/to/project/users/her/dev
/path/to/application
/path/to/application/conf
/path/to/application/bin
/path/to/application/share
export CDPATH=/path/to/project/users/me:/path/to/project/users/him:/path/to/project/users/her:/path/to/application
一個簡單的命令(例如cd tutorial
將在上述路徑中搜索tutorial
。
假設/path/to/application
在其下面有目錄conf
, bin
, share
。 一個簡單的cd conf
會將您發送到/path/to/application/conf
,只要它沒有conf
目錄之前的任何路徑即可。 此行為類似於PATH
可執行文件。 第一次出現總是被選擇
我的嘗試-現在確實有效! 我仍然擔心通過符號鏈接或類似的鏈接很容易將其無限化。
另外,我必須像這樣運行. down
從第一個空文件夾中. down
。
#!/bin/bash
function GoDownOnce {
Dirs=$(find ./ -maxdepth 1 -mindepth 1 -type d)
NumDirs=$(echo $Dirs | wc -w)
echo $Dirs
echo $NumDirs
if [ "$NumDirs" = "1" ]; then
cd $Dirs
GoDownOnce
fi
}
GoDownOnce
一位朋友還建議使用這種甜蜜的內膽:
cd $(find . -type d -name tutorial)
誠然,這並不是我所要求的,但是可以很好地完成工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.