`
java-mans
  • 浏览: 11467216 次
文章分类
社区版块
存档分类
最新评论

Linux系统下查看某文件修改的时间戳

 
阅读更多

转载自:http://hi.baidu.com/arongdy/blog/item/427c29084514b337e92488ec.html

查看文件时间戳命令: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
修改文件时间与创建新文件:touch

在介绍ls命令时,提到每个文件在Linux下面都会记录3个主要的修改时间:
• modification time(mtime,修改时间):当该文件的“内容数据”更改时,就会更新这个时间。内容数据指的是文件的内容,而不是文件的属性。
• status time(ctime,状态时间):当该文件的”状态(status)”改变时,就会更新这个时间,举例来说,更改了权限与属性,就会更新这个时间。
• access time(atime,存取时间):当“取用文件内容”时,就会更新这个读取时间。举例来说,使用cat去读取 ~/.bashrc,就会更新atime了。
举例来说,我们来看一看/etc/man.config文件的时间。

[root@linux ~]# ls -l /etc/man.config
-rw-r--r--  1 root root 4506 Apr  8 19:11 /etc/man.config
[root@linux ~]# ls -l --time=atime /etc/man.config
-rw-r--r--  1 root root 4506 Jul 19 17:53 /etc/man.config
[root@linux ~]# ls -l --time=ctime /etc/man.config
-rw-r--r--  1 root root 4506 Jun 25 08:28 /etc/man.config

看到了吗?在默认的情况下,ls显示的是该文件的mtime,也就是这个文件的内容上次更改的时间。我的系统是在6/25安装的,因此,这个文件产生但状态更改的时间就回溯到那个时间点。因为刚才的范例中使用到这个文件,所以,它的atime就会变成刚刚使用的时间了。

文件的时间很重要,因为如果误判文件时间,可能会造成某些程序无法顺利运行。那么,万一我发现了一个文件来自将来(很多时候会有这个问题的。我们在安装的时候,提到的GMT时间就是那个意思),该如何让该文件的时间变成“现在”的时刻呢?很简单,用touch命令即可。

[root@linux ~]# touch [-acdmt] 文件
参数:
-a : 仅修改access time。
-c : 仅修改时间,而不建立文件。
-d : 后面可以接日期,也可以使用 --date="日期或时间"
-m : 仅修改mtime。
-t : 后面可以接时间,格式为 [YYMMDDhhmm]
范例:

范例一:新建一个空的文件。 [root@linux ~]# cd /tmp [root@linux tmp]# touch testtouch [root@linux tmp]# ls -l testtouch -rw-r--r-- 1 root root 0 Jul 19 20:49 testtouch # 注意,这个文件的大小是0。在默认的状态下,如果touch后面接文件, # 则该文件的3个时间(atime/ctime/mtime)都会更新为当前时间。若该文件不存在, # 则会主动建立一个新的空文件。例如上面这个例子。

范例二:将 ~/.bashrc复制成为bashrc,假设复制完全的属性,检查其日期。 [root@linux tmp]# cp ~/.bashrc bashrc [root@linux tmp]# ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc -rwxr-xr-x 1 root root 395 Jul 4 11:45 bashrc <==这是mtime -rwxr-xr-x 1 root root 395 Jul 19 20:44 bashrc <==这是atime -rwxr-xr-x 1 root root 395 Jul 19 20:53 bashrc <==这是ctime # 在这个案例中,我们使用了 ; 命令分隔符,它的用法我们会在Bash shell中提到。 # 此外,ll是ls -l的命令别名,这个也会在bash shell中再次提及, # 当前可以简单地想成,ll就是ls -l的简写。至于 ; 则是同时发出两个命令, # 且让两个命令“按顺序”执行的意思。上面的结果中可以看到,该文件更改的日期 # Jul 4 11:45,但是atime与ctime不一样。

范例三:修改案例二的bashrc文件,将日期调整为两天前。 [root@linux tmp]# touch -d "2 days ago" bashrc [root@linux tmp]# ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc -rwxr-xr-x 1 root root 395 Jul 17 21:02 bashrc -rwxr-xr-x 1 root root 395 Jul 17 21:02 bashrc -rwxr-xr-x 1 root root 395 Jul 19 21:02 bashrc # 与上一个范例比较,本来是19日的变成了17日了(atime/mtime)。 # 不过,ctime并没有跟着改变。

范例四:将上个范例的bashrc日期改为2005/07/15 2:02。 [root@linux tmp]# touch -t 0507150202 bashrc [root@linux tmp]# ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc -rwxr-xr-x 1 root root 395 Jul 15 02:02 bashrc -rwxr-xr-x 1 root root 395 Jul 15 02:02 bashrc -rwxr-xr-x 1 root root 395 Jul 19 21:05 bashrc # 注意,日期在atime与mtime都改变了,但ctime则是记录当前的时间。

通过touch命令,可以轻松地修改文件的日期与时间。并且,也可以建立一个空文件。不过,要注意的是,即使复制一个文件,复制所有属性,但也没有办法复制ctime属性。ctime可以记录文件最近改变状态(status)的时间。无论如何,还是要说明一下,我们平时看的文件属性中,比较重要的还是mtime。我们关心的常常是这个文件的“内容”是什么时候更改的。
touch这个命令最常用的情况是:
• 建立一个空文件。
• 将某个文件日期修改为当前日期(mtime与atime)。

与文件相关的几个时间:

1、访问时间,读一次这个文件的内容,这个时间就会更新。比如对这个文件使用more命令。ls、stat命令都不会修改文件的访问时间。


2、修改时间,对文件内容修改一次,这个时间就会更新。比如:vi后保存文件。ls -l列出的时间就是这个时间。

3、状态改变时间。通过chmod命令更改一次文件属性,这个时间就会更新。查看文件的详细的状态、准确的修改时间等,可以通过stat命令 文件名。


分享到:
评论

相关推荐

    Linux目录文件基本命令

    cd命令:切换目录pwd命令:显示当前路径ls命令:查看目录下文件mkdir命令:创建目录(文件夹)rmdir命令:删除空目录touch命令:创建文件及修改文件时间戳ln命令:在文件之间建立链接ext 文件系统(Linux 文件系统)...

    Linux 查看远程服务器文件状态的方法

    stat 命令获取文件最后一次修改的时间戳: ssh usrname@remotehost stat -c %Y remote_file_path 以上这篇Linux 查看远程服务器文件状态的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家...

    linux常用命令大全及详解.zip

    touch:创建新文件或更改文件的时间戳。 cat:显示文件内容。 head:显示文件的前几行。 tail:显示文件的后几行。 grep:在文件中查找指定的字符串。 find:在文件系统中查找文件或目录。 chmod:修改文件或目录的...

    linux下获取文件的创建时间与实战教程

    背景 ...Linux 的文件系统保存有三个时间戳,利用 stat 指令查看文件信息可以获取。他们分别是 ATime、MTime 和 CTime [root@192-168-199-198 backups]# stat 2.txt File: ‘2.txt' Size: 16 Bl

    在UNIX或类UNIX系统(如Linux)中,有许多常用的命令用于文件操作、目录导航、进程管理、系统管理等 以下是一些常用的命令

    li在UNIX或类UNIX系统(如Linux)中,有许多常用的命令用于文件操作、目录导航、进程管理、系统管理等。以下是一些常用的命令及其简要说明: 文件和目录操作 ls: 列出目录内容。 cd: 更改当前目录。 pwd: 显示当前...

    linux常用命令大全.doc

    Linux系统拥有众多命令,用于执行各种任务和管理系统。以下是一些Linux中常用的命令大全: 文件和目录操作: ls:列出目录内容。 cd:更改当前目录。 pwd:显示当前工作目录的路径名。 mkdir:创建新目录。 rmdir:...

    linux命令及vi操作

    ls:查看当前目录内容,或使用参数查看隐藏文件和详细属性。cd:方便地切换目录,如cd ..返回上一级。mkdir:在某处创建新文件夹。touch:创建新文件或更新文件时间戳,适合编写和更新文档。cp:复制文件或目录,...

    如何使用Shell脚本掩盖Linux服务器上的操作痕迹(推荐)

    每一个 Linux 文件系统中的每个文件都保存着修改日期。系统管理员发现文件的最近修改时间,便提示他们系统受到攻击,采取行动锁定系统。然而幸运的是,修改时间不是绝对可靠的记录,修改时间本身可以被欺骗或修改,...

    linux学习路径-代码教学-文档

    4. touch:用于创建空文件或修改文件的时间戳,常用操作有touch filename(创建空文件)、touch -t time filename(修改文件的时间戳)。 5. rm:用于删除文件或目录,常用选项有-r(递归删除目录)、-f(强制删除...

    ExifDate2FS:此工具将递归将文件时间戳更新为来自EXIF标记DateTimeOriginal的信息

    它不会修改文件本身,只会修改文件系统时间戳。 对于Linux,它将修改mtime,而对于Windows,还将修改“创建日期”。 (可选)您可以使用--rename将文件重命名为IMG_YYYYMMDD_HHMMSS.jpg支持的文件格式(文件扩展名...

    详解在Linux下9个有用的touch命令示例

    这里所说的更改时间戳意味着更新文件和目录的访问以及修改时间。 让我们来看看 touch 命令的语法和选项: 语法: # touch {选项} {文件} touch 命令中使用的选项: 在这篇文章中,我们将介绍 Linux 中 9 个有用...

    linux 常用的30个命令总结.docx

    1. ls :列出当前目录下的文件和文件夹。 2. cd :更改当前工作目录。 3. pwd:显示当前目录的绝对路径。 4. mkdir:创建一个新的目录。 5. touch:创建一个新的空文件或更新时间戳。 6. cp :复制文件或目录。 7. ...

    linux 常用命令总结.docx

    1. ls :列出当前目录下的文件和文件夹。 2. cd :更改当前工作目录。 3. pwd:显示当前目录的绝对路径。 4. mkdir:创建一个新的目录。 5. touch:创建一个新的空文件或更新时间戳。 6. cp :复制文件或目录。 7. ...

    linux touch命令用法实例

    创建文件和修改文件或者目录的时间戳 2、命令语法: touch 【选项】 【文件名或者目录名】 3、命令参数: -a 只修改文件的access(访问)时间. -c 或–no-create 不创建不存在的文件。 -d 使用指定的日期时间,而非...

    Linux 判断文件修改时间和系统时间差

    Linux 判断文件修改时间和系统时间差 #!/bin/bash timestamp=`date +%s` filepath=/root/yuhui/ta-2016030307.log if [ -f $filepath ]; then echo 文件存在!路径为:$filepath filetimestamp=`stat -c %Y $...

    《精通Linux 设备驱动程序开发》.(Sreekrishnan).pdf

    2.6 proc文件系统32 2.7 内存分配33 2.8 查看源代码34 第3章 内核组件37 3.1 内核线程37 3.1.1 创建内核线程37 3.1.2 进程状态和等待队列41 3.1.3 用户模式辅助程序42 3.2 辅助接口43 3.2.1 链表...

    精通LINUX设备驱动程序开发

    22 2.4.3 短延时 24 2.4.4 pentium时间戳计数器 24 2.4.5 实时钟 25 2.5 内核中的并发 26 2.5.1 自旋锁和互斥体 26 2.5.2 原子操作 30 2.5.3 读—写锁 31 2.5.4 调试 32 2.6 proc文件系统 32 2.7 内存分配...

    linux.chm文档

    touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm) file file1 outputs the mime type of the file as text iconv -l 列出已知的编码 iconv -f fromEncoding -t toEncoding inputFile &gt; ...

    Linux命令基础9:touch命令和延伸

    linux 的 touch 命令不常用,一般在使用 make 的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。

    详解Linux命令修改文件的三个时间

    Linux命令如何修改文件的三个时间 本文主要对stat和touch两个命令进行讲解。 如何查看一个文件的元数据呢?可以使用stat命令。 File: ‘ceshi1’ 文件所在路径  Size: 4096 Blocks: 8 文件占据的磁盘块 IO ...

Global site tag (gtag.js) - Google Analytics