用于在Linux中查找最近访问的文件的shell脚本

用于在Linux中查找最近访问的文件的shell脚本

打印目录中最近访问的文件的名称,/var/run/log/其名称的形式为access-<DDD>.log(此处正好表示 3 位数字;因此文件名由后跟 3 位数字<DDD>组成,然后是access-.log

答案1

使用zsh外壳:

setopt EXTENDED_GLOB
print /var/run/log/access-[[:digit:]](#c3).log(.oa[1])

在这里,[[:digit:]](#c3)将精确匹配三位数字字符。之后,该字符串.log必须出现在名称中。中的点(.oa[1])限定了通配模式,以便仅匹配常规文件并按oa降序对它们进行排序atime。仅返回[1]第一个匹配的名称(最近访问的名称)。该print实用程序将打印生成的路径名。

更改printbasename仅输出文件名,不输出路径。


如果这是一项家庭作业并且您应该编写一个bash脚本:

#!/bin/bash

zsh -o extended_glob -c 'print /var/run/log/access-[[:digit:]](#c3).log(.oa[1])'

答案2

尝试这个:

ls -tu | grep -e '^access-[0-9]\{3\}\.log$' | awk '{print $NF}'

相关内容