脚本 - 查找目录中的最新文件是否早于“X”小时

jon*_*iop 0 linux bash shell-script

我正在尝试考虑一个命令或脚本,它可以在目录中找到最新的文件,并仅当文件早于“X”小时时才打印其路径。

这背后的想法是脚本仅在早于“X”小时时才返回值(最新文件的路径)。如果它没有返回任何内容,则应该意味着最新的文件比指定的时间更年轻。

Kus*_*nda 5

在zshshell 中,以下文件名通配模式将匹配任何非隐藏名称:

*
Run Code Online (Sandbox Code Playgroud)

以下内容将匹配任何具有非隐藏名称的常规文件。

*(.)
Run Code Online (Sandbox Code Playgroud)

要使其起到nullglobin的作用bash,请添加限定符N。D如果您想匹配隐藏名称,还可以添加(如“点文件”中所示):

*(.ND)
Run Code Online (Sandbox Code Playgroud)

添加mh+3以仅匹配 4 小时或更长时间前修改的常规文件的名称:

*(.NDmh+3)
Run Code Online (Sandbox Code Playgroud)

按 mtime 时间戳对匹配名称进行排序:

*(.NDmh+3om)
Run Code Online (Sandbox Code Playgroud)

选择名字(最近修改的):

*(.NDmh+3om[1])
Run Code Online (Sandbox Code Playgroud)

从bash:

zsh -c 'print -rC1 some/dir/path/*(.NDmh+3om[1])'
Run Code Online (Sandbox Code Playgroud)