2013-02-23 136 views
17

我需要獲取以nlb開頭的文件夾中的最新目錄名稱。獲取目錄中的最新文件

#!/bin/sh 

cd /home/ashot/checkout 
dirname=`ls -t nlb* | head -1` 
echo $dirname 

當文件夾包含名稱開始NLB許多文件夾,這個腳本工作正常,但 當只有一個與名字開始NLB文件夾,這個腳本打印出文件夾中的最新文件名。如何更改它以獲取最新的目錄名稱?

回答

11

添加-d參數給ls。這樣它總是會打印它所告訴的內容,而不是查看目錄中的內容。

6
#!/bin/sh 

cd /home/ashot/checkout 
dirname=$(ls -dt nlb*/ | head -1) 
echo $dirname 

正如其他答案指出的那樣,您需要-d不要查看目錄內部。

此處的一個附加提示是將/附加到該模式。在你指定的問題上獲取最新的目錄。通過尾部/,只有目錄會被匹配,否則如果存在最新的文件並且匹配將破壞您的腳本的模式nlb*

我也將`...`更改爲$(...)這是現代推薦的書寫風格。