原来Linux里也能打《ACM》?

这篇具有很好参考价值的文章主要介绍了原来Linux里也能打《ACM》?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原来Linux里也能打《ACM》?,# Linux基础入门篇,linux,运维,ACM时间

本文,我们来介绍一下Linux中的ACM时间,不过呢此ACM非彼acm,让我们一起来看看吧

前言

我们在写Makefile的时候,经常会遇到make: 'xxx' is up to date.的问题,很多同学都不知道是什么原因,本文我们就从这一点说起

  • 当我们在【make】的时候,通常会执行一些编译命令然后生成可执行文件,此时系统就会去比对源文件可执行文件最近修改时间
    • 如果.exe新于.c源文件,那表明源文件没有修改过,此时不需要再去重新编译
    • 如果.exe老于.c源文件,那表明源文件被修改过了,此时是需要再去重新编译的
  • 而且一般对于.exe.c的最近修改时间是不会相同的,因为可执行程序一定是在对源文件编译之后产生的

💬 好,讲了这么多,究竟这个时间在哪里呢?我们马上来瞧瞧

  • 此处要使用到我们在Linux基本指令中所学习的stat指令,现在我查看了一下这个可执行文件的所有属性,就看到了相应的ACM时间

原来Linux里也能打《ACM》?,# Linux基础入门篇,linux,运维,ACM时间

  • 我们先来简单介绍一下这三个时间
    1. Access —— 最近访问时间
    2. Modify —— 文件内容最近修改的时间
    3. Change —— 文件属性最近修改的时间

ACM时间的更新机制

上面的话谈到了系统会根据文件的最近修改时间来进行判断,那这三个时间的更新机制又是怎样的呢?

  • 首先是这个Access访问时间,当我们使用cat去查看一下这个文件的内容时,或者使用vim打开它 or 修改它的时候,都算是在访问它,所以这个【访问时间】几乎你的任何操作都会去进行一个修改。后面的ModifyChange时间我们一起说,一个是修改时间,一个是改变时间

💬 那有同学问,这俩不是一个意思吗?你这是在玩文字游戏啊

  • 那到不是,还记得我们曾经谈到过的Linux下一切皆文件,而文件又是由【文件内容】和【文件属性】,这个文件内容呢不单单指的是文件里面的内容,像文件名、文件的大小、修改日期等等,这些其实都是属于文件的内容

💬 之前我有问过同学们一个问题:在Windows下新创建一个空的文件或者记事本,那它要不要在磁盘中占据空间呢?

  • 答案是:会的✔ 就算一个文件里面什么东西都没有,这个文件还拥有各种各样的属性呢,这些属性都是属于这个文件的数据,我们就要靠这写数据去判别这个文件是什么类型的、谁创建的、什么时候创建的

  • 当我们对一个文件的【文件内容】做修改的时候变化的即为Modify时间,例如使用vim将其打开然后对内容做一些修改
  • 当我们对一个文件的【文件属性】做修改的时候变化的即为Change时间,我们在Linux权限一文中也有讲到过文件

原来Linux里也能打《ACM》?,# Linux基础入门篇,linux,运维,ACM时间

  • 那使用像chmodchownchgrp这些指令就可以去修改文件对应的【拥有者】、【所属组】、【other】的权限,即修改的文件的相关属性

原来Linux里也能打《ACM》?,# Linux基础入门篇,linux,运维,ACM时间

  • 我们可以来修改一下试试看,再去执行stat指令便可以发现有了变化

原来Linux里也能打《ACM》?,# Linux基础入门篇,linux,运维,ACM时间

  • 看完如何修改Change时间我们再来试着修改一下Modify时间,例如打开vim修改一下里面的内容,再去执行[stat]指令就可以发现Change时间和Modify时间一同发生了修改,一般二者是会有一个关联,后者会因为前者的修改而修改,即文件的内容改了,文件的属性也会改;把文件内容删了一部分,文件大小size就会变小
  • 但是Change时间的修改不会导致Modify时间发生变化,这个我们上面也观察到过了

原来Linux里也能打《ACM》?,# Linux基础入门篇,linux,运维,ACM时间


  • 那我们就可以来总结一下三个ACM时间所对应的修改机制
    1. 【Access】:拿vim把文件打开,对里面的内容做修改
    2. 【Modify】:重定向、vim编写文件内容
    3. 【Change】:chmod、chown、chgrp所做的这些事情

touch命令手动更新ACM时间

对于这个ACM时间,除了通过我们去修改文件的相关内容和属性引发修改之外,还可以手动去更新这个时间

👉 那就是使用我们所学习过的touch指令

  • 可以看到,这里我使用touch test.c因为这个文件文身就是存在的,所以呢就会去更新一下它的ACM时间,那若是这个文件本身不存在的话,就会将其创建出来

原来Linux里也能打《ACM》?,# Linux基础入门篇,linux,运维,ACM时间

  • 当然,你也可以实现像下面这两条指令去指定更改哪一个ACM时间,读者这边可以下去自己试一试,每个操作系统可能不太一样
touch -m test.c
touch -a test.c

原来Linux里也能打《ACM》?,# Linux基础入门篇,linux,运维,ACM时间


好,以上就是本文所要介绍的Linux下的ACM时间,你也打acm吗👈

原来Linux里也能打《ACM》?,# Linux基础入门篇,linux,运维,ACM时间文章来源地址https://www.toymoban.com/news/detail-535184.html

到了这里,关于原来Linux里也能打《ACM》?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux从入门到精通】Linux常用基础指令(中)

        本篇文章接上篇文章(【Linux从入门到精通】Linux常用基础指令(上))进行详解。本章的指令相对较为重要,使用频率较高,难度相对上篇文章较难,也较为复杂。希望能对你的理解有所帮助。  文章目录 一、mv 指令 1、1 剪切和重命名普通文件  1、2 剪切和重命名目录

    2024年02月02日
    浏览(46)
  • 【Linux从入门到精通】Linux常用基础指令(下)

      本篇文章接上篇文章(【Linux从入门到精通】Linux常用基础指令(上)、【Linux从入门到精通】Linux常用基础指令(中))进行详解。本章的指令相对没有那么常用,难度相对适中。同时也讲述了几个热键。希望能对你的理解有所帮助。  文章目录 一、grep指令 二、zip指令 三

    2024年02月02日
    浏览(47)
  • 【Linux从入门到精通】Linux常用基础指令(上)

      本篇文章会对Linux下的常用进行详细解释,并附加实例。通俗易懂,希望会对你有所帮助。根据内容量、内容的难易程度、内容的重要程度,分为上中下篇来讲解。  文章目录 一、什么是Linux的指令呢?  二、Linux下的常用指令 2、1 ls 指令 2、1、1 ls -a 2、1、2 ls -l 2、1、3

    2024年02月01日
    浏览(41)
  • 【Linux】-- 入门基础命令

    目录 Linux简介 一、用户相关操作命令 1.查看当前用户who am i 2.新建用户adduser 3.修改密码passwd 4.删除用户userdel 二、ls指令   1.-a  2.-d  3.-i  4.-k  5.-l  6. -n  7.-F  8.-r  9.-t  10.-s  11.-R  12.-1 三、pwd命令 四、cd指令 1.Linux管理文件形式  2.绝对路径和相对路径 3. cd指令操作 五、

    2024年02月13日
    浏览(31)
  • Linux 基础入门篇

    先在这块新的存储上做文件系统,但是并不是挂载到全局目录树的根上了,你是想让/home 目录和它关联,所以你需要把它挂载到/home目录上 新的粉色的存储设备上的文件系统挂载在了/home 目录,全局目录树/home就和粉色文件系统的根关联起来,也可以说是粉色文件系统的被装

    2024年02月14日
    浏览(34)
  • Linux 基础入门

    目录 一、计算机 1、组成 2、功能 二、操作系统 1、定义 2、主要工作 3、操作系统内核功能 4、常见的操作系统 三、Linux的组成 四、搭建Linux学习环境 五、安装远程连接Linux的软件 1、安装xshell 2、安装mobaxterm 六、Linux操作系统学习大纲         控制器         整个计算机

    2024年02月07日
    浏览(32)
  • Linux基础入门

    tab按键补全,双击tab展示所有可能性 :set nu 显示行号 上下键切换写过的命令 开关机 reboot重启 poweroff 关机; shutdown –h now 立刻关机 ctrl+c 强制停止命令的运行,退出当前命令的输入 ctrl+d退出或登出 history查看历史命令 清屏ctrl+l或clear 查询IP地址 LInux:ifconfig windows:ipconfig 塔

    2024年02月08日
    浏览(37)
  • Linux从基础到入门

    1.0.1bin和sbin目录 在Linux系统中,/bin和/sbin是两个常见的目录,它们包含了许多系统 可执行文件 。这些文件是系统启动和运行所必需的,并且通常由root用户或其他系统管理员运行。 /bin目录包含常用的系统命令和可执行程序,如ls、cp、mv、rm等。这些命令和程序通常是所有用户

    2024年04月12日
    浏览(28)
  • Linux之Shell基础入门

    什么是shell? Shell(外壳) 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。 Shell 既是一种命令语言 , 又是一种程序设计语言 。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 什么是脚本? 脚本简单地说就是

    2024年02月13日
    浏览(36)
  • Git零基础入门(Linux版)

    wget http://fishros.com/install -O fishros . fishros 使用博主人小鱼的一键安装(选项2) 安装完成在任意终端输入 git 将会显示git帮助选项 安装完成后进行以下基本的配置 可以查看gitee官方配置教程 创建完成的仓库,复制ssh克隆地址(注意选择ssh地址,否则需要身份验证) 1.常见的提

    2024年02月09日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包