touch命令

touch命令touch 命令 Linuxtouch 命令用于修改文件或者目录的时间属性 包括存取时间和更改时间 若文件不存在 系统会建立一个新的文件 ls l 可以显示档案的时间记录语法 touch acfm d 日期时间 r 参考文件或目录 t 日期时间 help version 文件或目录 参数说明 参数说明 日期时间 参考文件或目录 日期时间

touch命令

Linux的touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

在介绍touch命令前,先了解下linux的三个主要变动时间:mtime(modification time)、ctime(status time)、atime(access time)

  • modification time (mtime): 当该文件的“内容数据”变更时,就会更新这个时间。内容数据指的是文件的内容,而不是文件的属性或权限。
  • status time (ctime): 当该文件的“状态 (status)”改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间。
  • access time (atime): 当“该文件的内容被取用”时,就会更新这个读取时间 (access)。举例来说,我们使用 cat 去读取 /etc/man_db.conf , 就会更新该文件的 atime 了。
[root@study ~]# date;ls -l /etc/man_db.conf;ls -l --time=atime /etc/man_db.conf;ls -l --time=ctime /etc/man_db.conf  #这是同一行。用分号隔开  Tue Jun 16 00:43:17 CST 2015 # 当前时间  -rw-r--r--. 1 root root 5171 Jun 10 2014 /etc/man_db.conf # 在 2014/06/10 创建的内容(mtime)  -rw-r--r--. 1 root root 5171 Jun 15 23:46 /etc/man_db.conf # 在 2015/06/15 读取过内容(atime)  -rw-r--r--. 1 root root 5171 May 4 17:54 /etc/man_db.conf # 在 2015/05/04 更新过状态(ctime)  

为了要让数据输出比较好看,将三个指令同时依序执行,用分号 ; 隔开即可。

ls -l 可以显示档案的时间记录,显示完整时间可以用ls --full-time。还不熟悉ls命令的可以看下ls命令及常用参数详解

touch命令

语法

touch [-acdmt] file ... 

参数说明

选项与参数 说明
-a 修改文件的存取时间atime
-c 仅修改文件时间,若文件不存在则不创建新文件。与 –no-create 的效果一样
-d 后面可以接想要修订的日期而不用当前的日期,也可以使用--date=“日期或时间”
-m 改变档案的修改时间mtime
-r 使用参考文件的时间记录作为指定文件的时间,与 –file 的效果一样
-t 设定时间而不用目前的时间,格式为[YYYYMMDDhhmm]
–no-create 不会建立新档案
–help 列出指令格式
–version 列出版本讯息

实例演示

  1. 使用 touch 创建一个空文件
MHQ0063:~ xws$ touch file.txt MHQ0063:~ xws$ ls -l file.txt -rw-r--r-- 1 xws staff 0 7 25 12:22 file.txt 
  1. 改变/更新文件和目录的访问时间

假设我们想要改变名为 file.txt 文件的访问时间,在 touch 命令中使用 -a 选项,然后输入文件名。如下所示:

MHQ0063:~ xws$ touch -a file.txt 

现在使用 stat 命令验证文件的访问时间是否已更新:

MHQ0063:~ xws$ stat file.txt   -rw-r--r-- 1 xws staff 0 0 "Jul 27 16:46:51 2019" "Jul 25 12:22:26 2019" "Jul 27 16:46:51 2019" "Jul 25 12:22:26 2019" 4096 0 0 file.txt 

在这里插入图片描述

  1. 改变目录的访问时间

假设我们在 /test目录下有一个 test2 文件夹,让我们用下面的命令改变这个文件夹的访问时间:

MHQ0063:~ xws$ touch -m test/test2/ MHQ0063:~ xws$ stat test/test2/   drwxr-xr-x 2 xws staff 0 64 "Jul 27 16:58:39 2019" "Jul 27 17:31:28 2019" "Jul 27 17:31:28 2019" "Jul 27 16:58:39 2019" 4096 0 0 test/test2/ 
  1. 更改访问时间而不用创建新文件

在某些情况下,如果文件存在,我们希望更改文件的访问时间,并避免创建文件。在 touch 命令中使用 -c 选项即可,如果文件存在,那么我们可以改变文件的访问时间,如果不存在,我们也可不会创建它。

MHQ0063:~ xws$ touch -c test.txt MHQ0063:~ xws$ touch -c test2.txt MHQ0063:~ xws$ ls -s test2.txt ls: test2.txt: No such file or directory MHQ0063:~ xws$ ls -l test.txt -rw-r--r--@ 1 xws staff 169 7 27 17:36 test.txt 
  1. 更改文件和目录的修改时间
MHQ0063:~ xws$ touch -m file.txt 

现在使用 stat 命令来验证修改时间是否改变:

MHQ0063:~ xws$ stat file.txt   -rw-r--r-- 1 xws staff 0 0 "Jul 27 16:46:51 2019" "Jul 27 17:43:11 2019" "Jul 27 17:43:11 2019" "Jul 25 12:22:26 2019" 4096 0 0 file.txt 

同样的,我们可以改变一个目录的修改时间:

MHQ0063:~ xws$ touch -m test/test2/ MHQ0063:~ xws$ stat test/test2/   drwxr-xr-x 2 xws staff 0 64 "Jul 27 16:58:39 2019" "Jul 27 17:45:26 2019" "Jul 27 17:45:26 2019" "Jul 27 16:58:39 2019" 4096 0 0 test/test2/ 
  1. 将访问和修改时间设置为特定的日期和时间

每当我们使用 touch 命令更改文件和目录的访问和修改时间时,它将当前时间设置为该文件或目录的访问和修改时间。

假设我们想要将特定的日期和时间设置为文件的访问和修改时间,这可以使用 touch 命令中的 -c-t选项来实现。

  • CC – 年份的前两位数字
  • YY – 年份的后两位数字
  • MM – 月份 (01-12)
  • DD – 天 (01-31)
  • hh – 小时 (00-23)
  • mm – 分钟 (00-59)

比如我们将 file.txt 文件的访问和修改时间设置为未来的一个时间(2020 年 06月 01 日 13 时 14分)

MHQ0063:~ xws$ touch -c -t 4 file.txt 

使用 stat 命令查看更新访问和修改时间:也可使用ls -l --full-time命令来查看

MHQ0063:~ xws$ stat file.txt   -rw-r--r-- 1 xws staff 0 0 "Jun 1 13:14:00 2020" "Jun 1 13:14:00 2020" "Jul 27 17:51:15 2019" "Jul 25 12:22:26 2019" 4096 0 0 file.txt 

在这里插入图片描述
7. 使用参考文件设置时间戳(-r)

在 touch 命令中,我们可以使用参考文件来设置文件或目录的时间戳。假设我想在 file.txt 文件上设置与文件 test.txt 文件相同的时间戳, touch 命令中使用 -r 选项可以实现

语法

touch -r { 
   参考文件} 真正文件 

更新file.txt的时间戳,使其和test.txt的时间戳相同

touch -r file.txt test.txt 

使用stat命令查看

MHQ0063:~ xws$ stat file.txt test.txt   -rw-r--r-- 1 xws staff 0 0 "Jun 1 13:14:00 2020" "Jun 1 13:14:00 2020" "Jul 27 17:51:15 2019" "Jul 25 12:22:26 2019" 4096 0 0 file.txt   -rw-r--r-- 1 xws staff 0 169 "Jul 27 18:16:29 2019" "Jun 1 13:14:00 2020" "Jul 27 18:16:28 2019" "Jul 24 18:02:16 2019" 4096 8 0 test.txt 

在这里插入图片描述

实例练习

使用指令”touch”修改文件”testfile”的时间属性为当前系统时间,输入如下命令:

$ touch testfile #先创建一个testfile 

首先,使用ls命令查看testfile文件的属性,如下所示:

$ ls -l testfile #查看文件的时间属性 

可以发现原来文件的修改时间为12:04

-rw-r--r-- 1 xws staff 0 7 25 12:04 testfile 

执行指令”touch”修改文件属性以后,并再次查看该文件的时间属性,如下所示:

$ touch testfile #修改文件时间属性为当前系统时间  $ ls -l testfile #查看文件的时间属性  #修改后文件的时间属性为当前系统时间  -rw-r--r-- 1 xws staff 0 7 25 12:07 testfile 

在这里插入图片描述
使用指令”touch”时,若指定的文件不存在,则将创建一个新的空白文件。例如,在当前目录下,使用该指令创建一个空白文件”file”,输入如下命令:

$ touch file #创建一个名为“file”的新的空白文件  

touch命令就介绍到这里

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216707.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午11:15
下一篇 2026年3月18日 上午11:15


相关推荐

  • python类的初始化方法_python初始化列表

    python类的初始化方法_python初始化列表【背景】在scikit-learn基础上系统结合数学和编程的角度学习了机器学习后(我的github:https://github.com/wwcom614/machine-learning),意犹未尽,打算再借势学习下深度学习TensorFlow。无奈安装之后遇到了这个问题,耽误了几个小时才得以解决。我发现这是个很多人开始TensorFlow之旅普遍遇到的问题,而且是很多人尝试了网上很多方法都未解…

    2022年8月30日
    3
  • 详解Linux安装GCC方法

    详解Linux安装GCC方法捞nginx的时候回过头来看gcc的安装,才发现这篇怎么这么长,还是转载的!我自己都特么看不下去了!现重新总结一下,简单粗暴的两行命令(班门弄斧):一.安装yum-yinstallgccgcc-c++autoconfpcrepcre-develmakeautomakeyum-yinstallwgethttpd-toolsvim 1.就把gcc当成c

    2022年5月26日
    46
  • TCP-三次握手

    TCP-三次握手文章目录三次握手三次握手过程详解三次握手的状态变化面试题:四次挥手三次握手简单示意图:客户端–发送带有SYN标志的数据包–一次握手–服务端服务端–发送带有SYN/ACK标志的数据包–二次握手–客户端客户端–发送带有带有ACK标志的数据包–三次握手–服务端SYN同步序列编号(SynchronizeSequenceNumbers):是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN

    2022年10月3日
    5
  • eclipse创建安卓模拟器_eclipse创建安卓虚拟机

    eclipse创建安卓模拟器_eclipse创建安卓虚拟机AndroidApp开发一般需要模拟器来测试程序的正确性,特别是对于那些爱惜真机的开发者来说。其创建方法也分两种:一是通过eclipse开发环境,二是通过命令行创建。这里主要介绍如何在eclipse上创建Android模拟器。

    2026年4月17日
    5
  • UML——用例图

    UML——用例图UML——用例图

    2022年4月24日
    54
  • 转 -如何改变*.sln文件的路径「建议收藏」

    转 -如何改变*.sln文件的路径「建议收藏」工具-》选项—》项目和解决方案,可以设置项目和解决方案的目录。选中解决方案,点击文件,可以出现,*.sln另存为的选项转载于:https://www.cnblogs.com/9421/archive/2010/02/01/1660764.html…

    2022年5月18日
    79

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号