仅获取最新文件的全局路径

Glob path to get newest file only

假设我有一个包含每天保存的产品库存的目录:

$ ls *.csv
2014_01_01.csv
2014_01_02.csv
...

是否有只抓取最新文件的 glob 模式?或者我需要将它与其他命令链接起来吗?基本上我只是想根据文件名排序对 LIMIT 1 做些什么。

假设您的 shell 是 bashksh93zsh,并且您的文件与问题中的示例具有相同的命名约定:

files=( *.csv )
printf "The newest file is %s\n" "${files[-1]}"

由于文件名中的日期是一种自然排序的格式,因此将它们全部存储在一个数组中并取最后一个元素为您提供最新的(相反,第一个元素是最旧的)。