首页 > 解决方案 > bash脚本:在子目录中查找最近的文件

问题描述

我正在尝试在与某个模式匹配的子目录中找到最新编辑文件的路径。为此,我想使用 bash 脚本来获取文件路径,然后将其用于一系列操作。

例如,我会有这样的树:

Directory/
   dir 1.0/
      fileIwant.txt
      fileIdont.txt
   dir 2.0/
      fileIwant.txt
      fileIdont.txt
   dir 2.1/
      fileIwant.txt
      fileIdont.txt

所以在这种情况下,我想找到最新的“fileIwant.txt”(可能是“dir 2.1”中的那个,但可能不是)。然后我想存储这个文件的路径来复制它,重命名它或其他什么。

我找到了一些脚本来查找当前目录中的最新内容,但我并没有真正理解它们......所以我希望有人能帮我一把。

谢谢 !

编辑:感谢不同的答案,我最终得到了这样完美的东西:

filename="fileIwant"
regex=".*/"$filename"-([0-9]+(\.[0-9]+)*).*/"$filename"\.txt"

path="$(find . -regextype awk -regex $regex -type f -printf '%T@ %p\n' | sort -n | cut -f2- -d" " | tail -1)"

(它显然不完全符合我之前的例子)

标签: bash

解决方案


只需两个命令即可轻松完成此操作:

ls -t Directory/dir*/fileIwant.txt | head -n 1

ls带有选项的命令-t根据页面按修改时间排序其结果,最新的在前man


推荐阅读