分类: LINUX
2014-04-25 11:03:53
问题原型:编译openssl库的时候,遇到两个文件比较时间的问题:
openssl-1.0.1g# make
Makefile is older than Makefile.org, Configure or config.
Reconfigure the source tree (via './config' or 'perl Configure'), please.
make: *** [Makefile] Error 1
然后就在想,如何修改时间呢?当然,正常途径是按照提示,运行一下./config 或者 perl Configure 来解决上面的问题。
1. stat 命令来查看文件的时间
openssl-1.0.1g# stat Makefile
File: `Makefile'
Size: 25628 Blocks: 56 IO Block: 4096 regular file
Device: 811h/2065d Inode: 12658229 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-04-24 10:48:12.314102767 +0800
Modify: 2014-04-22 14:14:14.0?00000000 +0800
Change: 2014-04-23 15:47:05.238352502 +0800
上面存在三个时间:
modification time(mtime,修改时间):当该文件的“内容数据”更改时,就会更新这个时间。内容数据指的是文件的内容,而不是文件的属性。
status time(ctime,状态时间):当该文件的”状态(status)”改变时,就会更新这个时间,举例来说,更改了权限与属性,就会更新这个时间。
access time(atime,存取时间):当“取用文件内容”时,就会更新这个读取时间。举例来说,使用cat去读取 ~/.bashrc,就会更新atime了。
2.touch命令来修改修改时间和存取时间:
openssl-1.0.1g# touch --help
Usage: touch [OPTION]... FILE...
Update the access and modification times of each FILE to the current time.
Mandatory arguments to long options are mandatory for short options too.
-a change only the access time #只是改变存取时间
-c, --no-create do not create any files #不创建任何文件
-d, --date=STRING parse STRING and use it instead of current time #使用指定时间而不是系统当前时间,改变的是‘存取时间和修改时间’
-f (ignored)
-m change only the modification time #只改变修改时间
-r, --reference=FILE use this file's times instead of current time #使用这个文件的时间
-t STAMP use [[CC]YY]MMDDhhmm[.ss] instead of current time
--time=WORD change the specified time:
WORD is access, atime, or use: equivalent to -a
WORD is modify or mtime: equivalent to -m
openssl-1.0.1g#?? touch -d "2000-02-04 11:00:23" Makefile #加上-d 选项后,不适用当前时间,使用指定的时间来修改存取时间、修改时间
openssl-1.0.1g#
openssl-1.0.1g# stat Makefile
File: `Makefile'
Size: 25628 Blocks: 56 IO Block: 4096 regular file
Device: 811h/2065d Inode: 12658229 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2000-02-04 11:00:23.000000000 +0800
Modify: 2000-02-04 11:00:23.000000000 +0800
Change: 2014-04-25 10:57:06.470103318 +0800
openssl-1.0.1g# touch Makefile #不加任何参数就会变成当前的时间
openssl-1.0.1g# stat Makefile
File: `Makefile'
Size: 25628 Blocks: 56 IO Block: 4096 regular file
Device: 811h/2065d Inode: 12658229 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-04-25 10:57:47.882103296 +0800
Modify: 2014-04-25 10:57:47.882103296 +0800
Change: 2014-04-25 10:57:47.882103296 +0800