linux如何得到一个文件的最后修改时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux如何得到一个文件的最后修改时间相关的知识,希望对你有一定的参考价值。

查看文件时间戳命令:stat awk.txt
File: `awk.txt'
Size: 20 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 380730 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2008-04-26 01:50:44.000000000 +0800
Modify: 2008-04-26 01:48:18.000000000 +0800
Change: 2008-04-26 01:48:18.000000000 +0800

说明:Access访问时间。Modify修改时间。Change状态改变时间。可以stat *查看这个目录所有文件的状态。
现在是要过滤出Modify的时间戳,并以yyyyMMddHHSS格式保存,则可以利用下面这条命令:
stat awk.txt | grep -i Modify | awk -F. 'print $1' | awk 'print $2$3'| awk -F- 'print $1$2$3' | awk -F: 'print $1$2$3'
输出结果:20080426014818
建议楼主下载《Linux就该这么学》,里面有很全面、很系统、很实用的命令介绍,图文形式的,非常适合初学者的。
希望可以帮到您!
参考技术A 找到要查看的文件,右键点击属性

在弹出的对话框中,我们明显可以看到有更详细的信息,有文件的类型,位置,大小,占用电脑空间,创建日期,修改日期等等,
3
当然我们如果只查看文件的大小和修改日期还有更简洁的方法,左键点击文件不动,会弹出一个对话框,显示文件的大小和修改日期
参考技术B 命令的话用ls -l查看
函数的话stat();函数

如何使用android [关闭]获取RealmObject中的最后一个修改过的RealmObject或字段

我的应用程序运行如下:

  • 从网址下载zip文件
  • 提取下载的文件,获取csv文件和文件夹音频
  • 将csv文件保存到领域
  • 删除zip文件,fle提取,csv文件,只留下文件夹音频
  • 显示来自领域的数据。

这里的问题是,当我从服务器更新数据时,我想通过比较url中的最后一个修改文件和设备中的文件来更新领域中的数据,但我删除了zip文件,提取文件,csv文件,只保留文件夹音频用mp3文件。当我得到最后一个修改过的mp3文件时,它只是获取我上次在服务器上更新的日期,而不是我在设备上提取它的日期。它应该始终小于还是等于服务器上的更新文件。

代码示例

功能提取文件zip

private void extractZipe() {
  publishProgress(-1);
    try {
        ZipFile file = new ZipFile(zipFile);
        if (file.isEncrypted()) {
            file.setPassword("abcde12345-");
        }
        file.extractAll(zipFile.getParent());
        zipFile.delete();
        File csv = new File(context.getFilesDir(), "Data.csv");
        DataManager.getInstance().readTestQuestion(context, name, csv);
        csv.delete();
    } catch (ZipException e) {
        e.printStackTrace();
    }
}


//Realm data
public void readTestQuestion(Context context, String name, File file) {
    Realm realm = RealmManager.getDefault(context);
    Test test = Test.findByName(realm, name);
    String dateUpdate = new Date().toString();
    try {
        CSVReader reader = openCsvFromFile(file);
        List<Question> questions = readQuestion(realm, reader, test.getName());
        realm.beginTransaction();
        test.getQuestions().addAll(questions);
        realm.commitTransaction();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

从url检查lastModified

// Get LastModified file from server, it's true
HttpURLConnection connection = ....
long dt=connection.getLastModified();
if (dt == 0)
    Log.d("carot", "download: No date information.");
else
    Log.d("carot", "download: "+ new Date(dt)+ "::"+ dt );

代码检查设备中的最后修改文件

// Get LastModified file mp3 from device

File file = new File(holder.getContext().getFilesDir() + "/Data/Audio/", test.getQuestions().get(0).getAudio() + ".mp3");
long dt = file.lastModified();
if (dt == 0)
    Log.d("carot", "click: No date information.");
else
    Log.d("carot", "click: " + new Date(dt) + "::" + dt);

领域对象

//Realm Object Test with fields lastUpdated, created ..Always null because I did not process them before

public class Test extends RealmObject{
@PrimaryKey
    @Required
    private String id;
    private String name;
    private int duration;
    private int number_of_questions;
    private int display_order;
    private int progress;
    private String path;
    private boolean is_deleted;
    private String lastUpdated;
    private String created;
    private RealmList<Question> questions;
}

\\Question RealmObject 
public class Question extends RealmObject{
@PrimaryKey
    @Required
    private String id;
    @Index
    private String audio;
    @Index
    private String photo;
    private String text;
    @Index
    private String transcript;
    private String typeName;
    private int display_order;
}

(领域版本:1.2.0)

答案

1.)添加一个no-arg构造函数,将lastModified日期设置为new Date()

2.)将你的模式版本增加到+1,无论它现在是什么,并定义一个迁移,将lastModified的值设置为new Date(),其中lastModified目前是null

以上是关于linux如何得到一个文件的最后修改时间的主要内容,如果未能解决你的问题,请参考以下文章

获取linux中文件的最后修改时间

在 linux 终端中,如何显示文件夹的最后修改日期,并考虑其内容?

如何获取 Java 资源的最后修改时间?

如何获取文件最后在 Python 中修改的时间? [复制]

linux shell 判断指定目录下文件或者文件夹最后修改时间是不是大于三天~

Linux下用shell获取指定文件的最后修改时间并与系统时间比对,如果相差时间超过3分钟则执行另一个脚本