2012-05-15 146 views
2

假設我的腳本在一個文件夾內運行,並且在該文件夾中有一個名稱可以在每次運行腳本時都會更改的另一個文件夾。我怎樣才能找到該文件夾​​的名稱?Bash - 如何獲取當前文件夾內的文件夾的名稱?

編輯

舉個例子,比方說我的腳本文件夾/testfolder,這是已知的,在不改變運行。

/testfolder有另一個文件夾:/testfolder/randomfolder,它是未知的,可以更改。

如何找到/randomfolder的名稱?

我希望它更清晰,抱歉的混淆。

+1

一個例子有助於清晰起見。 –

+0

解析「ls」的輸出 –

+0

當您運行sript時,您對該文件夾的名稱有什麼瞭解?換句話說,您的腳本將如何知道要查找的文件夾?或者只能有一個? – Attila

回答

4

假設恰好有一個子目錄:

dir=$(find . -mindepth 1 -maxdepth 1 -type d) 

如果你沒有GNU找到,然後

for f in *; do [[ -d "$f" ]] && { dir=$f; break; }; done 
8
dirs=(/testfolder/*/) 

dirs將包含每個目錄的名稱的數組是/testfolder的直接子目錄。

如果只有一個,你可以這樣訪問:

echo "$dirs" 

echo "${dirs[0]}" 

如果有一個以上的,你要在它們之間迭代:

for dir in "${dirs[@]}" 
do 
    echo "$dir" 
done 
+0

謝謝,這也適用。 – mike23

+0

+1,比我的回答好。 –

相關問題