linux文件命令:更新文件时间戳的工具touch详解

目录

一、概述

[二. touch 命令的基本用途](#二. touch 命令的基本用途)

[三. touch 命令的语法](#三. touch 命令的语法)

3.1、语法

[3.2、touch 命令的选项](#3.2、touch 命令的选项)

3.3、时间字符串格式

[四. 常用场景](#四. 常用场景)

[4.1 创建空文件](#4.1 创建空文件)

[4.2 同时创建多个文件](#4.2 同时创建多个文件)

[4.3 更新文件的时间戳](#4.3 更新文件的时间戳)

[4.4 只更新访问时间](#4.4 只更新访问时间)

[4.5 只更新修改时间](#4.5 只更新修改时间)

[4.6 设置特定时间戳](#4.6 设置特定时间戳)

[4.7 使用另一个文件的时间戳](#4.7 使用另一个文件的时间戳)

[4.8 不创建新文件](#4.8 不创建新文件)

[五. 实际应用](#五. 实际应用)

[5.1 创建一个文件并查看其时间戳](#5.1 创建一个文件并查看其时间戳)

[5.2 更新文件的访问时间并查看变化](#5.2 更新文件的访问时间并查看变化)

[5.3 设置文件的时间戳为特定日期](#5.3 设置文件的时间戳为特定日期)


一、概述

touch 命令在 Linux 和其他类 Unix 系统中是一个非常实用且强大的工具。它主要用于创建新文件或更新现有文件的时间戳。

touch 命令虽然简单,但在日常使用 Linux 的过程中却极其重要。无论是创建新文件,还是调整文件的时间戳,touch 都能高效地完成任务。

二. touch 命令的基本用途

touch 命令的主要功能有两个:

(1)当指定的文件不存在时,touch 将创建一个新文件。

(2)如果文件已经存在,则 touch 命令会更新该文件的访问和修改时间戳到当前时间。

三. touch 命令的语法

3.1、语法

基本语法如下:

touch [选项]... 文件名...

3.2、touch 命令的选项

touch 命令提供了多种选项来控制其行为:

-a 或 --access, 更新访问时间戳,而不改变修改时间戳。

-m 或 --modify, 更新修改时间戳,而不改变访问时间戳。

-c 或 --no-create, 不创建文件,仅更新已存在的文件的时间戳。

-d 或 --date=DATE, 设置文件的时间戳为特定的日期和时间。

-t 或 --time=[ATIME|MTIME], 类似 -d,但接受的是旧式的 date 命令的时间格式。

-r 或 --reference=FILE, 使用另一个文件的时间戳来设置当前文件的时间戳。

3.3、时间字符串格式

使用-d 或-t 选项时,可以指定一个时间字符串,其格式通常是:

YYYYMMDDHHMM.SS

其中:

  • YYYY是年份
  • MM是月份
  • DD是日期
  • HH是小时
  • MM是分钟
  • SS是秒

当然也可以是其他样式,比如:YYYY-MM-DD HH:MM:SS

四. 常用场景

touch 命令是 Linux 系统管理员和终端用户工具箱中的一个重要工具,它提供了灵活的方式来处理文件的时间戳,无论是在脚本自动化中还是在日常的文件管理中。以下是 touch 命令的一些常见应用场景:

4.1 创建空文件

命令格式如下:

touch newfile1.txt

这将在当前目录下创建一个名为 newfile1.txt 的新文件。

4.2 同时创建多个文件

命令格式如下:

touch file1.txt file2.txt file3.txt

这将同时创建三个新文件。

4.3 更新文件的时间戳

命令格式如下:

touch existingfile1.txt

如果 existingfile1.txt 已经存在,它的访问时间和修改时间将会被更新为当前时间。

4.4 只更新访问时间

命令格式如下:

touch -a existingfile1.txt

只更新文件的访问时间。

4.5 只更新修改时间

命令格式如下:

touch -m existingfile1.txt

只更新文件的修改时间。

4.6 设置特定时间戳

命令格式如下:

touch -d '2023-01-01 12:00:00' existingfile1.txt

将文件的时间戳设置为指定的时间。

4.7 使用另一个文件的时间戳

命令格式如下:

touch -r referencefile.txt targetfile.txt

将 targetfile.txt 的时间戳设置为与 referencefile.txt 相同。

4.8 不创建新文件

命令格式如下:

touch -c existingfile1.txt

如果 existingfile1.txt 不存在,touch 不会创建它,只会更新已存在的文件的时间戳。

五. 实际应用

让我们通过几个实际的例子,来看看 touch 如何使用:

5.1 创建一个文件并查看其时间戳

touch example.txt

ls -l example.txt

实际操作如下:

可以看出example.txt的时间戳是当前时间。

5.2 更新文件的访问时间并查看变化

touch -a example.txt

ls -l example.txt

实际操作如下:

可以看出example.txt的时间戳没有改变,不是当前时间。

5.3 设置文件的时间戳为特定日期

touch -d '2024-08-01 10:00:00' example.txt

ls -l example.txt

实际操作如下:

可以看出example.txt的时间戳不是当前时间,变成了已经过去的时间:2024-08-01 10:00:00

相关推荐
浮尘笔记1 小时前
Java Snowy框架CI/CD云效自动化部署流程
java·运维·服务器·阿里云·ci/cd·自动化
测试修炼手册8 小时前
[测试工具] 用 Codex 做测试实战:从需求分析到自动化用例落地
运维·自动化·需求分析
米高梅狮子8 小时前
03.网络类服务实践
linux·运维·服务器·网络·kubernetes·centos·openstack
June`8 小时前
网络编程时内核究竟做了什么???
linux·服务器·网络
原来是猿8 小时前
腾讯云服务器端口开放完全指南
服务器·网络·腾讯云
你的保护色9 小时前
【无标题】
java·服务器·网络
楼兰公子9 小时前
RK3588 + Linux7.0.3 网络工程调试错误速查手册
linux·网络·3588
Elnaij9 小时前
Linux系统与系统编程(9)——自设计shell与基础IO
linux·服务器
IpdataCloud9 小时前
稳定的企业级IP数据接口怎么选?可用性指标+离线库高可用方案
运维·网络·tcp/ip
WebGIS开发9 小时前
地信职业百科②:GIS运维
运维·gis·就业·转行