如何在 Linux 中使用触摸命令

使用“touch”命令轻松创建新的空文件或更新现有文件/目录的时间戳

的主要应用 触碰 命令是创建没有任何内容的文件。创建空文件似乎是在浪费系统内存,但这里有一个问题。 触碰 当您希望在处理需要日志保存和监控的大型项目时创建时间戳或日志时,可以使用命令。您可以简单地使用创建一个空文件 触碰 命令,文件将具有创建时的时间和日期戳。 (在文件信息中而不是作为文件的内容).

的第二个重要用法 触碰 命令是修改文件的访问和修改时间。每个文件/目录都添加了一个唯一的时间戳。它显示文件/目录的访问和修改时间。但是可以使用 触碰 命令。

让我们看看使用 触碰 用不言自明的例子更详细地命令命令。

使用的选项 触碰 命令

有多种选项可用于 触碰 命令。

选项描述
-一个更改文件的访问时间
-m更改文件的修改时间
-C更改文件的访问时间而不创建新文件
-r使用参考文件设置文件或目录的时间戳
-d使用自由格式的人类可读日期为访问和修改时间设置相同的任意时间戳
-t使用指定时间创建文件

使用 触碰 命令

触碰 命令可用于在不使用任何选项的情况下创建空文件。按照下面给出的示例创建单个和多个空文件。

创建空文件

您可以使用 触碰 命令没有任何选项来创建一个空文件。

句法:

触摸 [文件名]

例子:

gaurav@ubuntu:~/workspace$ touch iift.txt

在这里,我创建了一个名为 iift.txt 的文件,使用 触碰 命令。使用 ls 命令查看文件是否已创建。

gaurav@ubuntu:~/workspace$ ls iift.txt init1 init2 init3 init4

要查看文件信息,您可以使用 状态 命令如下。

gaurav@ubuntu:~/workspace$ stat iift.txt 文件:iift.txt 大小:0 块:0 IO 块:4096 常规空文件 设备:808h/2056d Inode:1990385 链接:1 访问:(0644/-rw-r --r--) Uid: ( 1000/ gaurav) Gid: ( 1000/ gaurav) 访问: 2020-09-14 10:18:43.318160860 +0530 修改: 2020-09-14 10:18:43.86018 更改: 2020-09-14 10:18:43.318160860 +0530 出生:- gaurav@ubuntu:~/workspace$

创建多个空文件

如果你想一次创建多个空文件,你可以使用 触碰 通过以下方式命令。

句法:

触摸 [文件名-1] [文件名-2] [文件名-3]

例子:

gaurav@ubuntu:~/workspace$ touch log1.txt ssh.txt filemove.c gaurav@ubuntu:~/workspace$ ls -l total 36 -rw-r--r-- 1 gaurav gaurav 0 Sep 14 10:35 filemove .c -rw-r--r-- 1 gaurav gaurav 0 Sep 14 10:18 iift.txt -rw-r--r-- 1 gaurav gaurav 0 Sep 14 10:35 log1.txt -rw-r-- r-- 1 gaurav gaurav 0 Sep 14 10:35 ssh.txt

这里我创建了三个文件‘log1.txt’、‘ssh.txt’和‘filemove.c’。它们具有不同的文件扩展名。

您还可以使用以下方式批量创建空文件。

句法:

触摸 [文件名]-{1..n}.txt

例子:

我们将创建 10 个文件,即。 sheldon_log-1.txt、sheldon_log-2.txt 等等直到 sheldon_log-10.txt

gaurav@ubuntu:~/workspace$ touch sheldon_log-{1..0}.txt gaurav@ubuntu:~/workspace$
gaurav@ubuntu:~/workspace$ ls filemove.c iift.txt sheldon_log-10.txt sheldon_log-2.txt sheldon_log-4.txt sheldon_log-6.txt sheldon_log-8.txt gsy.c log1.txt sheldon_log-1。 txt sheldon_log-3.txt sheldon_log-5.txt sheldon_log-7.txt sheldon_log-9.txt gaurav@ubuntu:~/workspace$

更改或修改文件或目录的访问时间

访问时间戳是上次读取文件的时间。每当用户读取文件时,该文件的访问时间戳都会更新。访问时间戳表示上次访问文件的时间。这个文件或目录没有发生任何修改,但它只是被引用或读取。

使用 触碰 带选项的命令 -一个 修改特定文件的“访问时间”。新的“访问时间”将设置为当前日期和时间。要检查当前访问时间和修改时间,请使用 状态 命令。

修改文件

句法:

touch -a [文件名]

例子:

我们将看到要修改的文件的当前访问时间。

gaurav@ubuntu:~/workspace$ stat log1.txt 文件:log1.txt 大小:0 块:0 IO 块:4096 常规空文件 设备:808h/2056d Inode:2001385 链接:1 访问:(0644/-rw-r --r--) Uid: ( 1000/ gaurav) Gid: ( 1000/ gaurav) 访问:2020-09-13 23:52:19.305416141 +0530 修改:2020-09-13 23:52:00.20703: +0530 2020-09-13 23:52:19.305416141 +0530 出生:- gaurav@ubuntu:~/workspace$

使用 触摸-a 将文件 log1.txt 的访问时间更改为当前日期和时间。

输出:

gaurav@ubuntu:~/workspace$ touch -a log1.txt gaurav@ubuntu:~/workspace$
gaurav@ubuntu:~/workspace$ stat log1.txt 文件:log1.txt 大小:0 块:0 IO 块:4096 常规空文件 设备:808h/2056d Inode:2001385 链接:1 访问:(0644/-rw-r --r--) Uid: ( 1000/ gaurav) Gid: ( 1000/ gaurav) 访问: 2020-09-14 10:59:24.972855176 +0530 修改: 2020-09-13 23:52:00.20703: +0530 2020-09-14 10:59:24.972855176 +0530 出生:- gaurav@ubuntu:~/workspace$

可以观察到文件log1.txt的访问时间现在被修改了。

修改目录

触摸-a 也可以用来修改目录的访问时间,就像修改文件一样。

句法:

touch -a [目录路径]

例子:

gaurav@ubuntu:~$ stat ./workspace/tomcat 文件:./workspace/tomcat 大小:4096 块:8 IO 块:4096 目录 设备:808h/2056d Inode:2039942 链接:3 访问:(0775/drwxrwxr) uid:( 1000/ gaurav) gid: ( 1000/ gaurav) 访问:2018-03-30 11:18:28.912666800 +0530 修改:2018-03-30 00:13:02.4521953004 修改:+195300004 :18:28.912666800 +0530 出生:-

使用 触摸-a 修改目录tomcat的访问时间。

gaurav@ubuntu:~$ touch -a ./workspace/tomcat
gaurav@ubuntu:~$ stat ./workspace/tomcat 文件:./workspace/tomcat 大小:4096 块:8 IO 块:4096 目录 设备:808h/2056d Inode:2039942 链接:3 访问:(0775/drwxrwxr) uid: ( 1000/ gaurav) gid: ( 1000/ gaurav) 访问: 2020-09-14 11:21:10.638538949 +0530 修改:2018-03-30 00:13:02.4521953004 修改:+19530004 :21:10.638538949 +0530 出生: - gaurav@ubuntu:~$

在这里,目录“tomcat”的访问时间现在更改为当前日期和时间。

更改文件/目录的修改时间

修改时间表示上次修改文件内容的时间。程序或进程编辑或修改了文件。 “修改”是指文件中的某些内容被修改、删除或添加了新数据。

使用 触碰 命令和选项 -m 修改文件或目录的“修改时间”。可以为文件和目录部署以下方法。

对于文件

touch -m [文件名]

例子:

首先,使用 状态 命令显示文件的修改时间。

gaurav@ubuntu:~/workspace$ stat iift.txt 文件:iift.txt 大小:66 块:8 IO 块:4096 常规文件设备:808h/2056d Inode:1990385 链接:1 访问:(0644/-rw-r- -r--) Uid: ( 1000/ gaurav) Gid: ( 1000/ gaurav) 访问: 2020-09-14 11:33:36.927262587 +0530 修改: 2020-09-12 08:33:20370309:2020 -09-12 08:33:28.339190370 +0530

现在使用 触摸 -m 命令修改修改时间。

gaurav@ubuntu:~/workspace$ touch -m iift.txt
gaurav@ubuntu:~/workspace$ stat iift.txt 文件:iift.txt 大小:66 块:8 IO 块:4096 常规文件设备:808h/2056d Inode:1990385 链接:1 访问:(0644/-rw-r- -r--) Uid: ( 1000/ gaurav) Gid: ( 1000/ gaurav) 访问:2020-09-14 11:33:36.927262587 +0530 修改:2020-09-14 11:34:34.73102: +2 -09-14 11:34:34.719723531 +0530 出生:- gaurav@ubuntu:~/workspace$

文件的“修改时间” 文件 现在更改为当前日期和时间。

对于目录

touch -m [directory_path] 或 [directory_name]

例子:

我们将使用以下命令更改名为“tomcat”的目录的修改时间 触摸 -m 命令。让我们使用以下命令找出其当前的“修改时间” 状态 命令。

gaurav@ubuntu:~/workspace$ stat tomcat 文件:tomcat 大小:4096 块:8 IO 块:4096 目录设备:808h/2056d Inode:2039942 链接:3 访问:(0775/drwxrwxr-x) Uid/(gauv0): ) Gid: ( 1000/ gaurav) 访问: 2020-09-14 11:21:10.638538949 +0530 修改: 2019-07-12 11:43:22.482485281 +0530 修改: 2019-14 +0530: 2019-1820:7825出生:-

输出:

gaurav@ubuntu:~/workspace$ touch -m tomcat
gaurav@ubuntu:~/workspace$ stat tomcat 文件:tomcat 大小:4096 块:8 IO 块:4096 目录设备:808h/2056d Inode:2039942 链接:3 访问:(0775/drwxrwxr-x) Uid/(gauv0): ) Gid:( 1000/ gaurav) 访问:2020-09-14 11:21:10.638538949 +0530 修改:2020-09-14 11:43:22.482485281 +0530 更改:201820:9.63853820出生:- gaurav@ubuntu:~/workspace$

在这里,我更改了目录“tomcat”的修改时间戳。

在不创建新文件的情况下更改访问时间

触碰 命令运行时,创建一个新的空文件。但是可能会出现某些情况,文件已经创建,而您只想修改该文件的访问时间而不创建新文件。

在这种情况下,您可以使用 触碰 命令与 -C 避免创建新文件并仍然允许您修改访问时间戳的选项。

句法:

touch -c [文件名]

例子:

gaurav@ubuntu:~/workspace$ touch -c iift.txt gaurav@ubuntu:~/workspace$ ls demo gsy.c log1.txt sheldon_log-1.txt sheldon_log-3.txt sheldon_log-5.txt sheldon_log-7.txt sheldon_log-9.txt filemove.c iift.txt sheldon_log-10.txt sheldon_log-2.txt sheldon_log-4.txt sheldon_log-6.txt sheldon_log-8.txt tomcat gaurav@ubuntu:~/workspace$

同样,您可以更改现有目录的访问时间。您可以使用以下方法来执行此操作。

例子:

显示目录tomcat的当前访问时间戳。

gaurav@ubuntu:~/workspace$ stat tomcat 文件:tomcat 大小:4096 块:8 IO 块:4096 目录设备:808h/2056d Inode:2039942 链接:3 访问:(0775/drwxrwxr-x) Uid/(gauv0): ) Gid:( 1000/ gaurav) 访问:2020-09-14 11:21:10.638538949 +0530 修改:2020-09-14 11:43:22.482485281 +0530 更改:201820:9.63853820出生:- gaurav@ubuntu:~/workspace$ 
gaurav@ubuntu:~/workspace$ touch -c tomcat

在这里,我改变了已经存在的目录“tomcat”的访问时间。

输出:

gaurav@ubuntu:~/workspace$ stat tomcat 文件:tomcat 大小:4096 块:8 IO 块:4096 目录设备:808h/2056d Inode:2039942 链接:3 访问:(0775/drwxrwxr-x) Uid/(gauv0): ) Gid:( 1000/ gaurav) 访问:2020-09-14 20:18:52.625031128 +0530 修改:2020-09-14 20:18:52.625031128 +0530 更改:201205:201205:201203出生:- gaurav@ubuntu:~/workspace$ 

交叉检查输出:

gaurav@ubuntu:~/workspace$ touch -c temp.cpp gaurav@ubuntu:~/workspace$ ls temp.cpp ls: 无法访问 'temp.cpp': 没有这样的文件或目录 gaurav@ubuntu:~/workspace$ 

在这里,我尝试使用 触摸-c临时文件.该文件不存在。因此,我们可以说使用 触碰 带选项 -C 避免创建新的空文件并仅修改现有文件的时间戳。

将访问和修改时间戳修改为特定日期和时间

在前面的块中,您一定已经观察到,每当我们使用 触碰 命令更改时间戳,它更改为当前时间和日期。

但是,在某些情况下,您可能需要使用自定义的时间和日期。使用 触碰 命令与 -C -t 选项可以达到目的。

例子:

我将更改文件中的访问和修改时间戳 文件 到自定义的时间和日期。

gaurav@ubuntu:~/workspace$ stat iift.txt 文件:iift.txt 大小:66 块:8 IO 块:4096 常规文件设备:808h/2056d Inode:1990385 链接:1 访问:(0644/-rw-r- -r--) Uid: ( 1000/ gaurav) Gid: ( 1000/ gaurav) 访问: 2020-09-14 12:04:07.091786565 +0530 修改: 2020-09-14 12:04:07.06052: +82 -09-14 12:04:07.091786565 +0530 出生:-

可以按以下格式指定日期和时间: {CCYY}MMDDhhmm.ss

范围描述
抄送年份的前两位数字
YY年份的后两位数
毫米一年中的月份 (01-12)
DD一个月中的哪一天 (01-31)
呵呵一天中的小时 (00-23)
毫米一小时的分钟数 (00-59)

我使用的日期戳为 203011051820(即 5-November-2030,18:20 小时)。

gaurav@ubuntu:~/workspace$ touch -c -t 203011051820 iift.txt

此命令将更改文件的访问和修改时间戳 文件 如下。

gaurav@ubuntu:~/workspace$ stat iift.txt 文件:iift.txt 大小:66 块:8 IO 块:4096 常规文件设备:808h/2056d Inode:1990385 链接:1 访问:(0644/-rw-r- -r--) Uid: ( 1000/ gaurav) Gid: ( 1000/ gaurav) 访问: 2030-11-05 18:20:00.000000000 +0530 修改: 2030-11-05 18:20:00.000002 +02 -09-14 20:39:55.641781140 +0530 出生:- gaurav@ubuntu:~/workspace$ 

使用参考文件设置时间戳

触碰 命令也可以与选项一起使用 -r 在当前文件上使用您选择的参考文件的时间戳。

句法:

touch -r [reference_file] [actual_file]

例子:

我们将使用 gsy.c 文件作为参考文件。所以时间戳 gsy.c 将用于文件 文件.让我们首先检查这两个文件的当前时间戳 状态 命令。

gaurav@ubuntu:~/workspace$ stat gsy.c 文件:gsy.c 大小:0 块:0 IO 块:4096 常规空文件 设备:808h/2056d Inode:2001385 链接:1 访问:(0644/-rw-r --r--) Uid: ( 1000/ gaurav) Gid: ( 1000/ gaurav) 访问: 2020-09-14 10:59:24.972855176 +0530 修改: 2020-09-13 23:52:00.20703: +0530 2020-09-14 10:59:24.972855176 +0530 出生:-gaurav@ubuntu:~/workspace$ stat iift.txt 文件:iift.txt 大小:66 块:8 IO 块:4096 常规文件设备:8068h/200 :1990385 链接:1 访问:(0644/-rw-r--r--) uid:(1000/gaurav)gid:(1000/gaurav) 访问:2025-10-19 18:20:00.000000000 修改:+053 2025-10-19 18:20:00.000000000 +0530 更改:2020-09-14 20:39:55.641781140 +0530 

使用命令 触摸-r 现在。

gaurav@ubuntu:~/workspace$ touch -r gsy.c iift.txt

输出:

gaurav@ubuntu:~/workspace$ stat iift.txt 文件:iift.txt 大小:66 块:8 IO 块:4096 常规文件设备:808h/2056d Inode:1990385 链接:1 访问:(0644/-rw-r- -r--) Uid: ( 1000/ gaurav) Gid: ( 1000/ gaurav) 访问: 2020-09-14 10:59:24.972855176 +0530 修改: 2020-09-13 23:52:00.207020502 -09-14 21:04:27.640026328 +0530 出生:- gaurav@ubuntu:~/workspace$

从输出中,我们可以看到文件的时间戳 文件 已经改变。新的时间戳现在类似于参考文件 gsy.c 的时间戳

结论

在本教程中,我们了解了 触碰 命令和可用的各种选项来创建新的空文件并以各种方式修改现有文件的时间戳。