Chinaunix首页 | 论坛 | 博客
  • 博客访问: 82030
  • 博文数量: 16
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 142
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-26 19:43
个人简介

与你相遇,共守终老。

文章分类

全部博文(16)

文章存档

2013年(16)

我的朋友

分类: LINUX

2013-06-05 06:41:52

touch   -   修改文件的时间戳记.        
总览  
touch   [-acm][-r   ref_file(参照文件)|-t   time(时间值)]   file(文件名)...    
被废弃的版本:    
touch   [-acm][ugly_time]   file(文件)...    
   
GNU版本:    
touch   [-acfm]   [-r   file(参照文件)]   [-t   decimtime(时间值)]   [-d   time(时间值)]   [--time={atime,access,use,mtime,modify}]   [--date=time]   [--reference=file]   [--no-create]   [--help]   [--version]   [--]   file(文件)...        
   
用法描述  
touch   修改每个指定文件   file   的存取(access)和/或修改(modification)时间戳记.除非使用-r或-t选项,这些时间戳记都将修改为当前的时间.使用-r选项时,这些戳记将按照文件   ref_file   的时间戳记来修改(即变得和ref_file时间戳记值相同).使用-t选项,则这些戳记将按照给定的时间值   time   进行修改.同时使用或同时不使用选项-a和-m,存取和修改两个戳记都将被更改.若只使用选项-a,则只修改存取戳记.同样,只使用选项-m,则只修改修改戳记.若要修改戳记的文件尚不存在,除非使用-c选项,touch   将创建它(作为空文件,并赋予0666的模式且受umask值的限制).        
POSIX标准定义的选项  
-a    
修改文件   file   的存取时间.    
-c    
不创建文件   file.    
-m    
修改文件   file   file    
   
-r   ref_file    
将参照文件   ref_file   相应的时间戳记的数值作为指定文件   file   时间戳记的新值.    
-t   time    
使用指定的时间值   time   作为指定文件   file   相应时间戳记的新值.此处的   time   规定为如下形式的十进制数∶
[[CC]YY]MMDDhhmm[.SS]  
 这里,CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,则touch   将把年数CCYY限定在1969--2068之内.MM为月数,DD为天将把年数CCYY限定在1969--2068之内.MM为月数,DD为天数,hh为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0--61,这样可以处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时间.由于系统的限制,早于1970年1月1日的时间是错误的.

下面来下这个在posix标准上的介绍。   
       
POSIX标准的细节  
已被废弃的touch版本使用时会出现模棱两可的情况:   ugly_time   到底是时间值还是文件名?由于此种版本尚未提供-r或-t选项,所以使用时至少要有两个命令行参数,作为时间值,   ugly_time   必须为第一个参数.这里的   ugly_time   是一个形为MMDDhhmm[yy]的八位或十位整数.其中,yy是介于69--99之间表示1969--1999之间某一年的两位数,如果不给,表示当前这一年.        
GNU版本的细节  
如果第一个指定文件   file   的名子从形式上说是选项   -t   的有效参数,并且没有给出选项   -d,   -r   或   -t   -t    
数,也没有给`--'选项,那么这个文件名将被解释成时间值.    
   
一般情况下,在中,使用 touch   修改文件的时间戳记时要求用户时该文件的所有者.除非只是把文件的存取和修改两种时间戳记修改为当前的时刻,这种情况只要求用户拥有对该文件`写'的权利就行了.        

GNU版本选项用法简介  
-a,   --time=atime,   --time=access,   --time=use    
只修改存取时间.    
-c,   --no-create    
如果要修改的文件不存在,此选项使touch不去创建它.    
-d,   --date=time    
使用时间值   time   代替指定文件的戳记值.可以包含月份名,时区名以及`am'和   `pm'等等.    
-f    
此选项用于兼容BSD版本的   touch(1).    
-m,   --time=mtime,   --time=modify    
只修改修改时间.    
-r   file,   --reference=file    
使用参照文件   file   的时间戳记值修改指定文件的时间戳记.    
-t   decimtime    
这里时间值   decimtime   的格式为MMDDhhmm[[CC]YY][.ss]   从左至右分别是月份,日期,小时,分钟,可选的世纪和年,以及可选的秒.   touch   将用这组数值修改指定文件的时间戳记.请注意,这个格式与POSIX标准所规定的格式并不一样.    
       
GNU版本通用选项  
--help    
使程序在标准输出上显示该程序的用法信息.    
--version    
使程序在标准输出上打印其版本信息.    
       
GNU版本通用选项  
--help    
使程序在标准输出上显示该程序的用法信息.    
--version    
使程序在标准输出上打印其版本信息.    
--    
用于使程序终止对选项的解析.    
       
运行环境  
环境变量TZ一般用来表明所给时刻是哪个时区的.而环境变量LANG,   LC_ALL,   LC_CTYPE   和   LC_MESSAGES还是一般情况下的意义.        
遵循  
GNU版touch的-t选项的参数所用格式并不符合POSIX标准1003.2的描述.        
用法实例  
如果文件foo并不存在,那么命令`touch   foo'将创建它,并把最后的修改时间改到现在的时刻.这一特点经常用来引导   make   的执行
阅读(2663) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~