我试图通过查看文件名中的日期来查找目录中最旧的文件。
文件示例:
AA_20150408010101.txt
AA_AA_20150408020202.txt
BB_20150408030303.txt
我尝试了很多命令,但下面的命令是最接近所需结果的命令:
ls -lr | head -1
答案 0 :(得分:2)
试试这个:
ls -1 | sed 's/^\([^0-9]*\)\([0-9]\+\.txt\)/\2\1/g' | sort -n | head -1 | sed 's/^\([0-9]\+\.txt\)\(.*\)/\2\1/g'
此命令执行下一步:
虽然文件名中的时间戳看起来有点奇怪:你已经在文件inode中有时间戳,你可以使用stat
命令看到,所以为什么在文件名中使用额外的时间戳呢?我只能看到一个案例:如果文件修改时间被人为改变(例如使用touch
命令)。
答案 1 :(得分:0)
将文件名删除到简单日期,搜索第一个日期并查看文件是什么。
ls *$(ls | sed -e 's/.*_//' -e 's/.txt//' | sort -n | head -1).txt | head -1