簡體   English   中英

轉到最底部的目錄?

[英]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在其下面有目錄confbinshare 一個簡單的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.

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