为什么我们需要使用 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 命令的主要内容,如果未能解决你的问题,请参考以下文章

为什么我们需要使用 touch 命令

马云告别演讲

马云:大数据时代_最重要的是做最好的自己

马云香港演讲年轻人创业

由马云在2017年无锡物联网大会演讲,博主兼谈工业互联网的未来

马云:HR是阿里巴巴财产增值第一人!