linux 替换文件中日期格式,linux下查看和修改文件时间

一、查看文件时间及相关命令

1、stat查看文件时间[root@web10 ~]#

File: “install.log”

Size: 33386           Blocks: 80         IO Block: 4096   一般文件

Device: fd00h/64768d    Inode: 7692962     Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2012-07-13 16:02:34.000000000 +0800

Modify: 2011-11-29 16:03:06.000000000 +0800

Change: 2011-11-29 16:03:08.000000000 +0800

说明:Access访问时间。Modify修改时间。Change状态改变时间。可以stat *查看这个目录所有文件的状态。

而我们想要查看某文件的三个时间中的具体某个时间,并以年月日时分秒的格式保存。我们可以使用下面的命令:[root@web10 ~]#

2、ls查看文件时间

相应的通过ls 查看时也有三个时间:

modification time(mtime,修改时间):当该文件的“内容数据”更改时,就会更新这个时间。内容数据指的是文件的内容,而不是文件的属性。 status time(ctime,状态时间):当该文件的”状态(status)”改变时,就会更新这个时间,举例来说,更改了权限与属性,就会更新这个时间。 access time(atime,存取时间):当“取用文件内容”时,就会更新这个读取时间。举例来说,使用cat去读取 ~/.bashrc,就会更新atime了。[root@web10 ~]#

-rw-r--r-- 1 root root 33386 2011-11-29 install.log

[root@web10 ~]#

-rw-r--r-- 1 root root 33386 07-13 16:02 install.log

注意:ls参数里没有--mtime这个参数,因为我们默认通过ls -l查看到的时间就是mtime。

二、修改文件时间

创建文件我们可以通过touch来创建。同样,我们也可以使用touch来修改文件时间。touch的相关参数如下:-c : 仅修改时间,而不建立文件。

,也可以使用 --date="日期或时间"

-t : 后面可以接时间,格式为 [YYMMDDhhmm]

注:如果touch后面接一个已经存在的文件,则该文件的3个时间(atime/ctime/mtime)都会更新为当前时间。

若该文件不存在,则会主动建立一个新的空文件。[root@web10 ~]#

[root@web10 ~]#

File: “install.log”

Size: 33386           Blocks: 80         IO Block: 4096   一般文件

Device: fd00h/64768d    Inode: 7692962     Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2012-07-13 16:21:50.000000000 +0800

Modify: 2012-07-13 16:21:50.000000000 +0800

Change: 2012-07-13 16:21:50.000000000 +0800

同样,使用ls ,查看到的结果也一样。[root@web10 ~]#

-rw-r--r-- 1 root root 33386 07-13 16:21 install.log

[root@web10 ~]#

-rw-r--r-- 1 root root 33386 07-13 16:21 install.log

[root@web10 ~]#

-rw-r--r-- 1 root root 33386 07-13 16:21 install.log

下面再看一个和touch不相关的例子:[root@web10 ~]# cp /etc/profile .;

ll --time=atime profile ;

ll --time=ctime profile

cp:是否覆盖“./profile”? y

-rw-r--r-- 1 root root 1344 07-13 16:24 profile

-rw-r--r-- 1 root root 1344 07-13 16:25 profile

因为我之前运行过这个命令一次,所以会出现覆盖,不过这个覆盖出的好,刚才让我们看到了atime和ctime的时间的差别。

我们再回到touch利用touch修改文件时间:1. 同时修改文件的修改时间和访问时间

2. 只修改文件的修改时间

3. 只修改文件的访问时间

下面再给一个rootkit***常用的伎俩。就是把后一个文件的时间修改成和前一个相同。touch -acmr /bin/ls /etc/sh.conf

另外touch还支持像date命令一样参数修改文件时间:[root@web10 ~]#

ll install.log

-rw-r--r-- 1 root root 33386 07-11 16:35 install.log

最后总结下常用的文件操作与时间的关系:

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

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

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

touch 指令改变档案的时间记录。 ls -l 可以显示档案的时间记录。

参数:

a 改变档案的读取时间记录。

m 改变档案的修改时间记录。

c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。

f 不使用,是为了与其他 unix 系统的相容性而保留。

r 使用参考档的时间记录,与 --file 的效果一样。

d 设定时间与日期,可以使用各种不同的格式。

t 设定档案的时间记录,格式与 date 指令相同。

--no-create 不会建立新档案。

--help 列出指令格式。

--version 列出版本讯息。

范例:

最简单的使用方式,将档案的时候记录改为现在的时间。若档案不存在,系统会建立一个新的档案。

touch file

touch file1 file2

将 file 的时间记录改为 5 月 6 日 18 点 3 分,公元两千年。

时间的格式可以参考 date 指令,至少需输入 MMDDHHmm ,就是月日时与分。

touch -c -t 05061803 file

touch -c -t 050618032000 file

将 file 的时间记录改变成与 referencefile 一样。

touch -r referencefile file将 file 的时间记录改成 5 月 6 日 18 点 3 分,公元两千年。

时间可以使用 am, pm 或是 24 小时的格式,日期可以使用其他格式如 6 May 2000。

====================================================================================

touch -d 和 date -s 的用法相同。如果没有指定日期,默认为系统日期

touch -d 18:03 file

touch -d "18:03" file

touch -d "6:03pm" file

如果没有指定时间,默认为 00:00:00

touch -d 20000506 file

touch -d "05/06/2000" file

touch -d "20000506" filetouch -d "6:03pm 05/06/2000" file

touch -d "20000506 18:03" file

touch -d "20000506 18:03:00" file

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值