访问时间: 文件每次访问之后,文件的访问都会被更新.例如用cat,less等来查看文件,文件的访问时间就会更新.如果文件创建后没有被访问过,则访问时间等于创建时间.ls,stat等命令都不会修改这个时间
文件状态修改时间: 文件的状态每次修改之后,文件的状态修改时间会被更新.例如,用chomd修改文件的权限,用mv重命名文件都会修改这个时间.如果文件创建后,状态都没有改变过,则状态改变时间等于创建时间.
文件内容修改时间: 文件每次修改之后,文件的内容修改时间会被更新.例如,用vim修改文件并保存后,这个时间就会更新(用vim修改文件保存文件后,三个时间都会被更新.用touch可以只修改内容修改时间,而不修改其他两个时间).ls -l 列出的时间就是这个时间. 如果文件创建后没有被修改过,则文件内容修改时间等于创建时间.
用stat可以查看文件的这三个时间
$ stat kk File: `kk' Size: 12 Blocks: 1 IO Block: 65536 regular file Device: 88337c02h/2285075458d Inode: 4785074604130337 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 500/Administrator) Gid: ( 513/ None) Access: 2009-03-15 12:10:32.593750000 +0800 Modify: 2009-03-15 12:10:32.593750000 +0800 Change: 2009-03-15 12:10:32.593750000 +0800 |
touch可用于修改文件的访问时间和内容修改时间.下面是它的一些选项
-a 只修改文件的访问时间.不加任何选项的话,touch会同时修改文件的访问时间和内容修改时间为当前时间
$ stat kk File: `kk' Size: 12 Blocks: 1 IO Block: 65536 regular file Device: 88337c02h/2285075458d Inode: 4785074604130337 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 500/Administrator) Gid: ( 513/ None) Access: 2009-03-15 12:19:42.579125000 +0800 Modify: 2009-03-15 12:19:42.579125000 +0800 Change: 2009-03-15 12:19:42.609375000 +0800 $ touch kk $ stat kk File: `kk' Size: 12 Blocks: 1 IO Block: 65536 regular file Device: 88337c02h/2285075458d Inode: 4785074604130337 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 500/Administrator) Gid: ( 513/ None) Access: 2009-03-15 12:25:30.906250000 +0800 Modify: 2009-03-15 12:25:30.906250000 +0800 Change: 2009-03-15 12:25:30.937500000 +0800 $ touch -a kk $ stat kk File: `kk' Size: 12 Blocks: 1 IO Block: 65536 regular file Device: 88337c02h/2285075458d Inode: 4785074604130337 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 500/Administrator) Gid: ( 513/ None) Access: 2009-03-15 12:25:43.236375000 +0800 Modify: 2009-03-15 12:25:30.906250000 +0800 Change: 2009-03-15 12:25:43.250000000 +0800 |
上例中,因为touch修改了文件的时间戳,所以文件的状态修改时间也更新了,但是这不是touch主动去更改的.
-c 如果传给touch的文件不存在,touch就会创建一个新的空文件.这个选项告诉touch不要创建空文件.
$ ls touch.* ls: cannot access touch.*: No such file or directory $ touch touch.1 $ ls touch.* touch.1 $ touch -c touch.2 $ ls touch.* touch.1 |
-m 与-a对应,-a只修改访问时间,-m则只修改内容修改时间
-r file 把文件的时间戳修改成和file的一样
$ stat sed.test File: `sed.test' Size: 6 Blocks: 1 IO Block: 65536 regular file Device: 88337c02h/2285075458d Inode: 24769797950545978 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 500/Administrator) Gid: ( 513/ None) Access: 2009-03-15 11:43:20.927875000 +0800 Modify: 2008-08-08 08:08:00.000000000 +0800 Change: 2009-03-15 11:49:24.781250000 +0800 $ touch -r sed.test kk $ stat kk File: `kk' Size: 12 Blocks: 1 IO Block: 65536 regular file Device: 88337c02h/2285075458d Inode: 4785074604130337 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 500/Administrator) Gid: ( 513/ None) Access: 2009-03-15 11:43:20.927875000 +0800 Modify: 2008-08-08 08:08:00.000000000 +0800 Change: 2009-03-15 12:30:34.078125000 +0800 |
-t [[CC]YY]MMhhmm.[ss] 将时间戳修改为指定的时间,而不是当前时间
$ touch -t 0001020304.45 kk $ stat kk File: `kk' Size: 12 Blocks: 1 IO Block: 65536 regular file Device: 88337c02h/2285075458d Inode: 4785074604130337 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 500/Administrator) Gid: ( 513/ None) Access: 2000-01-02 03:04:45.000000000 +0800 Modify: 2000-01-02 03:04:45.000000000 +0800 Change: 2009-03-15 12:33:21.984375000 +0800 |
转载请注明出处 http://fornote.blogspot.com
没有评论:
发表评论