我需要在以nlb开头的文件夹中获取最新的目录名称。
#!/bin/sh
cd /home/ashot/checkout
dirname=`ls -t nlb* | head -1`
echo $dirname
当文件夹包含许多名称以nlb开头的文件夹时,此脚本可以正常工作,但是 当只有一个名称以nlb开头的文件夹时,此脚本会在该文件夹中打印最新的文件名。如何更改它以获取最新的目录名?
答案 0 :(得分:12)
将-d
参数添加到ls。这样它总会打印出它所说的内容,而不是查看目录。
答案 1 :(得分:8)
#!/bin/sh
cd /home/ashot/checkout
dirname=$(ls -dt nlb*/ | head -1)
echo $dirname
正如另一个答案指出的那样,你需要-d
不要查看目录。
此处的其他提示是在模式中附加/
。在您指定的问题中,获取最新的目录。使用此跟踪/
只会匹配目录,否则如果存在最新的文件并匹配会破坏脚本的模式nlb*
。
我还将`...`
更改为$(...)
,这是现代推荐的写作风格。