获取目录中的最新文件

时间:2013-02-23 14:16:30

标签: bash shell unix

我需要在以nlb开头的文件夹中获取最新的目录名称。

#!/bin/sh

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

当文件夹包含许多名称以nlb开头的文件夹时,此脚本可以正常工作,但是 当只有一个名称以nlb开头的文件夹时,此脚本会在该文件夹中打印最新的文件名。如何更改它以获取最新的目录名?

2 个答案:

答案 0 :(得分:12)

-d参数添加到ls。这样它总会打印出它所说的内容,而不是查看目录。

答案 1 :(得分:8)

#!/bin/sh

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

正如另一个答案指出的那样,你需要-d不要查看目录。

此处的其他提示是在模式中附加/。在您指定的问题中,获取最新的目录。使用此跟踪/只会匹配目录,否则如果存在最新的文件并匹配会破坏脚本的模式nlb*

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