linux下取某一目录下时间戳最大的文件?谢谢

时间:2021-07-09 04:32:33
某一目录如/home/下有一系列文件,如a09052011.txt,a08302011.txt,a09042011.txt等,文件命名规则为a+MMDDYYYY.txt,需要找出时间戳最大的文件,如本例a09052011.txt,谢谢

8 个解决方案

#1


如果只创建一次 那么久取lastmodify最大的那个文件 如果频繁修改的话 只有按照文件名排序了

#2


按照文件名排序

#3


Comparator<File> comparator = new Comparator<File>(){
    public int compare(File file1, File file2){
        DateForamt formatter = new SimpleDateFormat("MMddyyyy");
        Date date1 = formatter.parse(file1.getName().substring(1));
        Date date2 = formatter.parse(file2.getName().substring(1));
        return date1.compareTo(date2);
    }
}

File file = new File("/home/");
File[] files = file.listFiles();
Arrays.sort(files,comparator);

#4


引用 3 楼 huntor 的回复:
Java code
Comparator<File> comparator = new Comparator<File>(){
    public int compare(File file1, File file2){
        DateForamt formatter = new SimpleDateFormat("MMddyyyy");
        Date date1 ……

linux下取某一目录下时间戳最大的文件?谢谢

#5


一条语句里不好搞,写个小perl脚本轻松就搞定了

#6


ls -a | sort -r | head -n 1

#7


ls -A1rt | tail -n 1

#8


谢谢大家的回答,不过日期格式是MMDDYYYY,月日年形式的,直接排序不行啊,谢谢!

#1


如果只创建一次 那么久取lastmodify最大的那个文件 如果频繁修改的话 只有按照文件名排序了

#2


按照文件名排序

#3


Comparator<File> comparator = new Comparator<File>(){
    public int compare(File file1, File file2){
        DateForamt formatter = new SimpleDateFormat("MMddyyyy");
        Date date1 = formatter.parse(file1.getName().substring(1));
        Date date2 = formatter.parse(file2.getName().substring(1));
        return date1.compareTo(date2);
    }
}

File file = new File("/home/");
File[] files = file.listFiles();
Arrays.sort(files,comparator);

#4


引用 3 楼 huntor 的回复:
Java code
Comparator<File> comparator = new Comparator<File>(){
    public int compare(File file1, File file2){
        DateForamt formatter = new SimpleDateFormat("MMddyyyy");
        Date date1 ……

linux下取某一目录下时间戳最大的文件?谢谢

#5


一条语句里不好搞,写个小perl脚本轻松就搞定了

#6


ls -a | sort -r | head -n 1

#7


ls -A1rt | tail -n 1

#8


谢谢大家的回答,不过日期格式是MMDDYYYY,月日年形式的,直接排序不行啊,谢谢!