按名称对文件进行排序,就像按日期一样

按名称对文件进行排序,就像按日期一样

我有一个备份 bash 脚本,它将所有内容散列到备份目录中的 tar.gz 中。对于恢复脚本,我需要能够从 bash 中选择最新的一个。我的备份文件夹的格式是backup/YYYY-MM-DD/HH-MM.tar.gz

示例文件结构如下

/2016-03-08/1230.tar.gz
/2016-03-08/0615.tar.gz
/2016-03-07/0615.tar.gz

答案1

给定文件名和目录结构,您可能只需使用findsort

find backup -type f -iname '*.tar.gz' | sort -r | head -1

这应该返回最新的文件。YYYY-MM-DD/HHMM按字典顺序排序的日期也给出了按时间排序的顺序。

要将此文件放入变量中,请使用命令替换:

newest_file=$(find backup -type f -iname '*.tar.gz' | sort -r | head -1)

相关内容