运行touchfile命令,如果file不存在,会产生一个空文件file。例如,先确定z.txt不存在,再运行touchz.txt,则会创建一个字节数为0的文件z.txt:
无论file是否事先存在,运行touchfile命令后,file的修改时间均被设定为当前时间。下面的k.txt的修改时间与date命令显示的当前时间不同,运行touch命令后,k.txt的修改时间变为了当前时间,即15:12:
touch命令可以带上时间参数,将文件的修改时间设为特定时间,即某年某月某日的某一时刻。这里就不详细展开了,读者如果有兴趣可以查看帮助。
touch命令可以改变文件的修改时间。其实,不带选项的touch命令将文件的访问时间、修改时间和状态改动时间都设定为了当前时间,用选项-a设定访问(access)时间;用选项-m设定修改(modification)时间。那么这三种时间各是什么意思呢?修改时间,顾名思义,就是文件最后一次被改动并保存的时间;访问时间,就是最后一次查看文件的时间,例如用cat命令查看它;状态改动时间,讲过chmod命令之后再解释它。
用ls-l看到的是修改时间,加上选项-u,即用ls-lu看到的是访问时间。下例中文件的修改时间和访问时间都是11:29:
下面使用cat命令“访问”一下它,而不要修改它:(www.xing528.com)
再查看它的信息,可见,修改时间没变,访问时间更新了:
文件的三种时间当中,很容易想到,用户最关心并且最常用的是修改时间。Linux下的某些命令和工具的执行,与文件的时间戳是相关的。
例如,有时候会用find命令搜索修改时间在某天之前(或者之后)的文件。如果对搜索结果想“操控”一下,可以事先使用touch命令。
再举个例子,假设有多人协同开发软件,每个人每天在18:00之前提交自己的经过单元测试的修改内容到代码库,每晚23:00有工具链可以自动编译最新的软件。工具先扫描文件的时间戳,如果发现所有的文件的修改时间都是昨日18:00以前的,说明当天没有人修改代码,则无需编译(使用前一次的编译结果即可);如果发现当天只有一个或几个文件被修改,则只编译与其相关的模块即可,然后链接。Linux下有个叫make的工具,可以做这样的事情。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。