为什么我们需要使用 touch 命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我们需要使用 touch 命令相关的知识,希望对你有一定的参考价值。
为什么我们需要使用 touch 命令
既然 touch 命令描述的是改变时间戳,那么我们可能会想为什么我们需要去改变时间戳呢?这个问题会引发我们的深思。
然而,我想有个理由可以解释为什么我们需要使用它。如果你参加了一个全球范围的开源项目,那么时间戳可能变得很重要。
编译源代码文件可能需要同一地区的时间戳。如果未统一,程序可能会编译失败。(PS:有强迫症的同学也很喜欢这个命令——就看不得乱七八糟的时间,;>)
其实Linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳。
make 命令
简单来说,make 命令像文件打包操作。这些目标通常存放在以 “Makefile” 来命名的特殊文件中,同时文件也包含与目标相对应的操作。
当 make 命令第一次执行时,它扫描 Makefile 找到目标以及其依赖。如果这些依赖自身也是目标,继续为这些依赖扫描 Makefile 建立其依赖关系,然后编译它们。
一旦主依赖编译之后,然后就编译主目标(这是通过 make 命令传入的)。
现在,假设你对某个源文件进行了修改,你再次执行 make 命令,它将只编译与该源文件相关的目标文件,因此,编译完最终的可执行文件节省了大量的时间。
一个.exe中通常包含许多文件依赖关系。(如文件B由文件A生成,文件C由文件B生成。)
那么现在,如果想要再次生成一个文件C,此时使用touch命令对文件A的时间进行修改;此时当你执行make命令时,系统发现文件A的时间晚于文件B,就会重新跑一遍。
依赖关系中常有多对多的情况。如果你修改了某一条依赖关系上的某个文件,当你执行make 命令肯定不希望为此将所有文件都跑一遍,而系统也不会知道你改了哪个文件。
那么执行make 命令时,系统就会根据时间戳来判断,哪些文件需要重新跑。而touch命令修改时间的想法也同样如此。
最后,更正下关于touch命令修改时间上的一些概念。
1.直接touch filename 时,系统自动将文件修改时间更新为当前时间。
2.若使用touch修改文件修改时间为指定时间时,
若制定的时间是当月日期,则显示形式不变;
若制定的时间非当月日期,则显示年份月日,不显示时分。
ps:
修改文件后,文件修改时间立即变为当前时间,自然显示格式为月日时分。
PS:
当然,正因为touch命令可以修改文件存取时间和修改时间,如果你的老板发现某些文件修改时间过早,认为你今天没有好好上班时,你就可以……
= =Linux新人,欢迎各种指点。
=0=感谢锋哥指点迷津!
以上是关于为什么我们需要使用 touch 命令的主要内容,如果未能解决你的问题,请参考以下文章