Linux命令touch——如何修改Linux文件的时间

今天因为要写一个Linux下的定时任务,就是删除三个月前的文件,写好了,需要测试下。但是苦于当前的Linux的系统找不到三个月前的文件。那就想到两种方案:1.修改os的时间,把系统时间调到三个月以后。这是一个办法。2.修改文件本身的建立时间。前面一个办法似乎见过的,后面的,只是此时想了,但是还不知道怎么办。那就尝试第二种办法。去网上搜了下,知道touch命令可以搞定(最早知道touch,是因为需要它来帮忙建立一个新的file,O(∩_∩)O~没想到它的用处还蛮多的嘛)。记录了下来。

我特意查看了下touch的Linux下的帮助,确实可以使用参数d来实现,帮助里是这样描述的:

-d, --date=STRING

parse STRING and use it instead of current time

Linux命令touch——如何修改Linux文件的时间

这完全符合我的要求。
先把touch的参数说明贴在这里:
命令参数:
-a  或--time=atime或--time=access或--time=use  只更改存取时间。

-c  或--no-create  不建立任何文档。

-d  使用指定的日期时间,而非现在的时间。

-f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。

-m  或--time=mtime或--time=modify  只更改变动时间。

-r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。

-t  使用指定的日期时间,而非现在的时间。

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

--help 列出指令格式。 

--version 列出版本讯息。
此处就使用简单的修改文件时间——————
实例:将我系统里某些文件修改为三个月前的时间:
 当前系统文件信息如下:

[root@linuxidc test]# ls -l
 total 28
 drwxr-xr-x 2 root  root    4096 Jan  9 15:47 1333
 -rwxrwxr-x 1 Oracle oinstall 8143 Jan  9 14:41 3.sh
 drwxr-xr-x 2 root  root    4096 Jan  9 15:49 444
 -rw-r--r-- 1 root  root        0 Jan  9 14:41 4.sh
 -rwxr-xr-x 1 root  root    8143 Jan  9 14:44 77.sh
 -rwxrwxr-x 1 root  root      54 Jan  9 16:03 find.sh
我想把所以的.sh文件修改到三个月前(2013年10月13)的时间。操作命令:
[root@linuxidc test]# touch -d "10/13/2013" *.sh
结果是:
[root@linuxidc test]# ls -l
 total 28
 drwxr-xr-x 2 root  root    4096 Jan  9 15:47 1333
 -rwxrwxr-x 1 oracle oinstall 8143 Oct 13 00:00 3.sh
 drwxr-xr-x 2 root  root    4096 Jan  9 15:49 444
 -rw-r--r-- 1 root  root        0 Oct 13 00:00 4.sh
 -rwxr-xr-x 1 root  root    8143 Oct 13 00:00 77.sh
 -rwxrwxr-x 1 root  root      54 Oct 13 00:00 find.sh

另外也可以单独修改时间或者月份,如下
以使用 am, pm 或是 24 小时的格式,日期可以使用其他格式如 6 May 2000 。
touch -d "6:03pm" file 

touch -d "05/06/2000" file 

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

相关推荐