我需要获取以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*
。
我也将`...`
更改为$(...)
这是现代推荐的书写风格。