touch的属性

时间:2022-10-07 17:25:07
touch命令:建立文件
touch的功能并不是用来创建新文件的,创建文件是touch命令的一个特殊情况,touch是用来修改指定的文件的访问和修改时间属性,如果指定的文件不存在,将建立一个新的空文件,并以当前的时间来设置文件的访问和修改时间。
touch -r<参考文件>  [文件名]
例:
1、创建两个文件,并以当前的时间设定其修改和访问时间。
touch file1  file2
可以用ll命令查看一下:  ll file1  file2
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  today  #today是已经存在的文件。
补充:
改变文件的时间戳:
文件的时间属性包括文件的最后访问时间,最后修改时间以及最后在磁盘上修改的时间,命令stat显示结果显示了对应3个时间属性.
命令参数:
touch 改变文件或目录的时间戳
参数:
-a 只更改访问时间
-r <参考文件或目录> 把指定的文件或目录日期时间设置为和参考文件或目录的日期时间相同。
-m  只更改修改时间
-d <时间日期字符串>  或 --date=<时间日期字符串> 使用指定的字符串日期时间,而非系统当前时间,日期字符包括月份,时区,上午(am),下午(pm)等。如:--date="2010-08-08 2:30pm"或 --date="2010-08-08 14:30"
-t <时间戳> 使用指定的日期时间,而非当前时间来更改文件的时间属性。
时间戳的格式:ccyymmddhhmm.SS
分表表示:
cc 年份头两位
yy 年份后两位
mm 月(01-12)
dd 天(01-31)
hh 小时(00-23)
mm 分钟(00-59)
SS 秒 (00-59)
例:
更改文件的最后一次修改时间为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