【问题标题】:Get the latest file in directory [duplicate]获取目录中的最新文件[重复]
【发布时间】:2013-02-09 02:12:00
【问题描述】:

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

#!/bin/sh

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

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

【问题讨论】:

标签: bash shell unix


【解决方案1】:

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

【讨论】:

    【解决方案2】:
    #!/bin/sh
    
    cd /home/ashot/checkout
    dirname=$(ls -dt nlb*/ | head -1)
    echo $dirname
    

    正如另一个答案指出的那样,您需要 -d 才能不查看目录内部。

    这里的另一个提示是将/ 附加到模式。在您指定的问题中获取最新的目录。有了这个尾随的/,只会匹配目录,否则如果存在最新的文件并且匹配模式nlb*,这会破坏您的脚本。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-22
      • 2021-10-30
      • 2012-03-07
      • 2014-06-09
      相关资源
      最近更新 更多