当前位置: 首页 > 面试题库 >

Bash函数查找最新的文件匹配模式

贾飞章
2023-03-14
问题内容

在Bash中,我想创建一个函数,该函数返回与特定模式匹配的最新文件的文件名。例如,我有一个文件目录,例如:

Directory/
   a1.1_5_1
   a1.2_1_4
   b2.1_0
   b2.2_3_4
   b2.3_2_0

我想要以“ b2”开头的最新文件。我该怎么做呢?我需要在~/.bash_profile脚本中包含它。


问题答案:

ls命令具有-t按时间排序的参数。然后,您可以使用抓取第一个(最新的)head -1

ls -t b2* | head -1

但请注意:为什么不应该解析ls的输出

我个人的看法:ls仅当文件名包含空格或换行符之类的有趣字符时,解析才是危险的。如果可以保证文件名不会包含有趣的字符,则解析ls是非常安全的。

如果您正在开发一个脚本,该脚本打算在许多不同情况下在许多系统上由许多人运行,那么我非常建议您不要解析ls

这是“正确”的操作方法:如何在目录中找到最新(最新,最早,最旧)文件?

unset -v latest
for file in "$dir"/*; do
  [[ $file -nt $latest ]] && latest=$file
done


 类似资料:
  • 问题内容: 在node.js中,我可以列出具有通配符匹配的文件吗? 在fs文档中找不到通配符匹配的信息。 问题答案: Node核心未涵盖此范围。您可以检查该模块的内容。npmjs.org还是查找各种模块的绝佳资源。 用法

  • 本文向大家介绍查找图的匹配数,包括了查找图的匹配数的使用技巧和注意事项,需要的朋友参考一下 问题陈述 下图的匹配数字是多少? 解 顶点数= 9 我们只能匹配8个顶点。 匹配号码为4。

  • 问题内容: 我需要找到6位数字的模式,而前3位数字是特定数字,但其余3位数字将是任意数字。例如,以123开头的6位数字字符串,后跟任意3位数字。 ddd是任何数字。var1和var2将匹配模式,但var 3将不匹配。我似乎无法完全正确。 问题答案: 使用字符类:比赛,和在字符集之间的每一个字符,这-至少在Unicode和子集的字符集(US-ASCII,拉丁语1,UTF-8) -是数字通过。因此,它

  • 问题内容: 我有一个类似… 的正则表达式模式,我需要搜索成千上万个文件(大小从1KB到24 MB不等)以成千上万个文件(介于100到8000之间)。 我想知道是否有比我尝试过的模式匹配更快的方法。 环境: 杰克1.8 Windows 10 Unix4j库 这是我到目前为止尝试过的 我明白了,这让我觉得我做错了什么。 我对流使用了不同的方法,平均每种方法需要大约一分钟的时间来处理当前的6660个文件

  • 问题内容: 我在尝试编译一个android项目时从Jenkins控制台获得了以下输出:请注意,我没有对主类(Jenkins控制台)进行任何更改: 这是我的pom: 我认为我的问题来自目标目录,因为jenkins提到了这一点。我在詹金斯(Jenkins)有3个目录:assets,res et src是否应该在这三个文件夹中添加更多内容?例如lib或target ?? 问题答案: 该 档案文物 后生成

  • 问题内容: 如何为给定的目标值搜索和查找数组中最接近的值? 假设我有这个示例数组: 例如,当我用目标值0搜索时,该函数应返回0;否则,该函数将返回0。当我搜索3时,它将返回5;当我搜索14时,它将返回12。 问题答案: 将您要搜索的数字作为第一个参数,将数字数组作为第二个参数: