浅析Linux命令之touch

来源:互联网 发布:百度云视频网络不给力 编辑:程序博客网 时间:2024/06/04 18:04

1、功能:

1)创建新的空文件;

2)修改已存在的文件的访问和修改时间属性。

文件的时间属性包括文件的最后访问时间,最后修改时间以及最后在磁盘上修改的时间,命令stat显示文件的3个时间属性:

2、语法:

touch (选项)  (参数)

3、选项:

-a:或--time=atime或--time=access或--time=use 只更改访问时间;

-c:或--no-create 不建立任何文件; 

-d:<时间日期> 使用指定的日期时间,而非现在的时间;如:--date="2010-08-08 2:30pm"或 --date="2010-08-08 14:30"

-m:或--time=mtime或--time=modify 只更该修改时间; 

-r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同; 

-t:<日期时间> 使用指定的日期时间,而非现在的时间;

时间戳的格式:ccyymmddhhmm.SS

分表表示:
cc 年份头两位
yy 年份后两位
mm 月(01-12)
dd 天(01-31)
hh 小时(00-23)
mm 分钟(00-59)
SS 秒 (00-59)

--help:在线帮助; 

--version:显示版本信息。

4、参数

文件:指定要设置时间属性的文件列表。

5、举例:

1)创建两个不存在的文件,并以当前的时间设定其修改时间和访问时间,然后用 ll 命令查看:


2)用其他文件的时间属性设置新的文件:

linux@linux-desktop:~/test$touch today  #创建一个新的空文件
linux@linux-desktop:~/test$ ls -l  /bin/rm  today  #查看/bin/rm  today两个文件的日期
-rwxr-xr-x 1 root  root  46756 2010-06-11 15:11 /bin/rm
-rw-r--r-- 1 linux linux     0 2010-11-23 12:02 today
#一个是6月,一个是11月。
linux@linux-desktop:~/test$touch -r /bin/rm  today   #用rm的时间去修改today的时间
linux@linux-desktop:~/test$ ll today
-rw-r--r-- 1 linux linux 0 2010-06-11 15:11 today  #变成6月了,测试成功
linux@linux-desktop:~/test$ 

3)修改文件为当前的时间:touch 已存在的文件名

touch  today  #today是已经存在的文件。

4)更改文件的最后一次修改时间为1998-03-03

linux@server:~$touch test #创建一个文件
linux@server:~$stat test  #显示文件inode信息
  File: “test”
  Size: 4096       Blocks: 8          IO Block: 4096   目录
Device: 809h/2057d Inode: 1048969     Links: 2
Access: (0755/drwxr-xr-x)  Uid: ( 1000/   linux)   Gid: ( 1000/   linux)
Access: 2010-12-10 16:49:46.376593995 +0800
Modify: 2010-12-10 16:49:46.376593995 +0800
Change: 2010-12-10 16:49:46.376593995 +0800
linux@server:~$touch -m -t 199803030504 test
linux@server:~$stat test
  File: “test”
  Size: 4096       Blocks: 8          IO Block: 4096   目录
Device: 809h/2057d Inode: 1048969     Links: 2
Access: (0755/drwxr-xr-x)  Uid: ( 1000/   linux)   Gid: ( 1000/   linux)
Access: 2010-12-10 16:49:46.376593995 +0800
Modify: 1998-03-03 05:04:00.000000000 +0800
Change: 2010-12-10 16:50:17.900593999 +0800