我需要獲取以nlb開頭的文件夾中的最新目錄名稱。獲取目錄中的最新文件
#!/bin/sh
cd /home/ashot/checkout
dirname=`ls -t nlb* | head -1`
echo $dirname
當文件夾包含名稱開始NLB許多文件夾,這個腳本工作正常,但 當只有一個與名字開始NLB文件夾,這個腳本打印出文件夾中的最新文件名。如何更改它以獲取最新的目錄名稱?
我需要獲取以nlb開頭的文件夾中的最新目錄名稱。獲取目錄中的最新文件
#!/bin/sh
cd /home/ashot/checkout
dirname=`ls -t nlb* | head -1`
echo $dirname
當文件夾包含名稱開始NLB許多文件夾,這個腳本工作正常,但 當只有一個與名字開始NLB文件夾,這個腳本打印出文件夾中的最新文件名。如何更改它以獲取最新的目錄名稱?
添加-d
參數給ls。這樣它總是會打印它所告訴的內容,而不是查看目錄中的內容。
#!/bin/sh
cd /home/ashot/checkout
dirname=$(ls -dt nlb*/ | head -1)
echo $dirname
正如其他答案指出的那樣,您需要-d
不要查看目錄內部。
此處的一個附加提示是將/
附加到該模式。在你指定的問題上獲取最新的目錄。通過尾部/
,只有目錄會被匹配,否則如果存在最新的文件並且匹配將破壞您的腳本的模式nlb*
。
我也將`...`
更改爲$(...)
這是現代推薦的書寫風格。