获取目录中的最新文件

问题描述:

我需要获取以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*

我也将`...`更改为$(...)这是现代推荐的书写风格。