linux-23 文件管理(一)创建文件touch,stat

devtools/2024/12/28 17:36:57/

    那接下来看看文件的创建和删除,那我们怎么去创建一个文件?各种方式都能实现,当然,这里先说一说,就像mkdir创建空目录一样,我们如何创建一个空文件?创建空文件其实很简单,有一个命令歪打正着,它本来不是用于创建文件的,却可以用拿来创建文件,这个命令叫做touch,touch什么意思?摸一下,是不是这意思,所以我们touch一个,比如说,touch a,如下图,

底下有个a,file a,如下图,

那么,这是个空文件,没错吧?好,这就创建空文件了,现在有个文件叫a了,我在创建目录a行不行?可不可以?为什么呢?目录是文件吗?它其实是文件,只不过是一种非常独特的文件,它是用于引用其他文件的文件,那所以能创建目录叫a吗?mkdir a,如下图,

它说a已经存在了,你创建不了a目录的,一定要注意,在linux下,目录和文件是不能同名的,
那在Windows下,为什么可以?那我明确告诉你Windows下,它也不可以,事实上,不可以,Windows下创建的任何文件默认都有后缀的,只是你看不见而已,不是吗?创一个a.txt,再创建目录a呢,也没问题啊,比如我先看我创一个目录叫x,我再创建个文件叫x.doc,它俩文件名一样吗?显然不一样,这个Windows没让你看见而已。文本文件叫什么,.txt,所以在Windows下它也不可以,这个要记得好。那我们touch的时候可以创建一个文件,但是要记得touch的命令的主要目的不是用来创建文件的,是用来干什么呢?摸一下显然不是为了创建,对吧?来看,man touch,如下图,

叫change file timestamps,叫修改文件的时间戳,它是用于修改文件的时间戳的,说过一个文件都有三个戳是吧?最近一次的访问时间,最近一次的修改时间,最近一次的改变时间,
其实我们可以查看的来看下这个命令叫stat,man stat,如下图,

叫display file or file system status,什么意思?显示文件或文件系统的状态信息,当然我们先不考虑那么复杂,我就直接打开一个文件看看,state a,如下图,

看显示信息是什么?文件名、大小、数据块、IO块、等等,叫a没错,看底下这三个,最近一次的访问时间、修改时间、改变时间,并且这里显示为东八区的,看到没有?就是我们时区,那再看,那么touch下会有什么结果?看当前时间,我们使用date是不是?如下图,

是23点40分11秒,然后我touch a,再state a,看看效果,如下图,

什么改了,全改了,是不是时间戳改掉了,所以touch a并不是创建a的,只不过a不存在的时候,它会自动创建而已。touch主要目的是改时间戳的,来看man touch,如下图,

有个选项叫做-c,它有个长选项叫--no-create什么意思?叫不创建任何文件,什么意思?我本来是修改时间戳的,如果你不存在,那就创建,默认是不是这样子?否则的话,加-c就不常见了,看看我们底下有个文件叫c吗?没有那,touch -c 看看,ls有没有叫c的文件,如下图,

所以我说这是touch的作用,所以touch歪打正着它能创建空文件。

    那我们接下来看看,既然说到touch了,就来看看touch怎么去修改文件时间戳,在某些情况下,这个还是很有用的一种手段,尤其是对那些黑客们,可能会经常用这个命令。它应该怎么用?我们怎么去改变一个文件的时间戳,比如说我只想改变它一个时间戳,而不是全部的,看-a只改变访问时间,再看-m只改变修改时间,没有说只改变改变时间,好像没有,是不是,为什么呢?因为你的任何属性修改,包括时间戳修改,它是不是也就意味着属性给改了?无论如何,属性改是绕不过去的,这点是无法作假的,不然文件系统就错乱了。

    所以修改时间和访问时间都可以改,但改变时间不能改,这个要记得,那改成什么时间呢?比如再看date,再state看一下,如下图,

访问时间改了,发现这个访问时间一改,它的文件属性是不是就改了,因为时间戳也是文件的属性,所以最后一个改变时间是不是也改了,但最近一次的修改时间没改,同样的道理,如下图,

最近一次访问时间没动,但修改时间改变了,修改时间也是属性信息,它一改改变时间也会变,我们指定的修改,实际上都改为了当前时间,对吗?那如果我们想指定时间怎么办?比如说本来这个文件上一次的修改时间是过去的某个时刻,我们偷偷的在里边新增了一些内容,那时间戳是不是改变了?我想做成好像从来没改过的样子,那该怎么改回去呢?把它改为一个过去的时间,-t直接指定时间,使用这种格式,年月日小时分钟.秒钟。那因此你看我使用 touch -m -t 202312121212.30 a,再看stat a,如下图,

这样就把它的最近一次的修改时间指定到了某个时间而不是当前时间这就是我们的touch命令。其实它还是挺常用的命令,当然,我们也讲了state命令的用法。这两个命令都要记得的,touch和state,touch的选项的-a、-m和-t,对吧?还有-c不创建文件。好,这是如何去创建一个文件。


http://www.ppmy.cn/devtools/146168.html

相关文章

sentinel笔记10- 限流规则持久化(下)

上一篇整理过单向的持久化,sentinel笔记9- 限流规则持久化(上)-CSDN博客 本篇进行sentinel 改造,实现双向同步。 1 下载Sentinel源码 https://github.com/alibaba/Sentinel 2 dashboard 改造 2.1修改dashboard项目的pom.xml &…

抖音生活服务商系统源码怎么搭建?

随着抖音在本地生活服务市场的势头日渐迅猛,抖音生活服务商所拥有的广阔市场前景和巨大收益潜力也开始不断显现,而这也让不少创业者都产生了入局的想法,并纷纷从各个渠道打听起了抖音生活服务商怎么申请的消息。 毕竟,综合抖音官方…

IPv4地址表示法详解

在TCP/IP协议中,IP地址是一个最基本的概念,本文就来参考《计算机网络》谢希仁 这本书,总结一下IPv4地址表示法的发展阶段,做个读书笔记。 IP地址的编址方法共经过了三个历史阶段: 分类的IP地址,这是最基本…

【uniapp】支付宝付款成功后怎么调回自定义页面

以H5为例&#xff08;其实兼容app&#xff09; 1、uniapp跳转第三方链接&#xff0c;新建一个a.vue // actionUrl为第三方链接&#xff08;例如后端返回的支付宝链接&#xff09; <template><view><web-view :src"actionUrl"></web-view>&l…

7-1求逆序对数目

目录 题目描述 输入样例: 输出样例: 逆序对的含义&#xff1a; 具体思路&#xff1a; 归并排序&#xff1a; 求逆序对&#xff1a; 代码实现&#xff1a; 对于mid-z1举个例子 题目描述 注意&#xff1a;本问题算法的时间复杂度要求为O(nlogn), 否则得分无效 题目来源&#xff…

【Java 代码审计入门-02】SQL 漏洞原理与实际案例介绍

SQL注入漏洞全解析 发布日期&#xff1a;2024年12月26日 引言 在互联网的快速发展的今天&#xff0c;Web应用的安全性变得越来越重要。SQL注入&#xff08;SQL Injection, 简称SQLi&#xff09;作为最常见的Web安全漏洞之一&#xff0c;给无数网站和应用程序带来了巨大的风险…

kotlin 函数作为参数

函数引用的类型 Kotlin 支持几种类型的函数引用&#xff1a; 引用顶层函数: ::topLevelFunction引用成员函数: ::memberFunction (需要一个对象实例来调用)引用扩展函数: ::extensionFunction (需要一个接收者对象)引用构造函数: ::ClassName 或 ClassName::class.constructo…

再谈ChatGPT降智:已蔓延到全端,附解决方案!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;专注于分享AI全维度知识&#xff0c;包括但不限于AI科普&#xff0c;AI工…