touch详讲

🏝️专栏:https://blog.csdn.net/2301_81831423/category_12872319.html

🌅主页:猫咪-9527-CSDN博客

"欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。"

目录

基本语法

主要功能

常用选项详解

[1. 创建空文件](#1. 创建空文件)

[2. -a:仅更新访问时间](#2. -a:仅更新访问时间)

[3. -m:仅更新修改时间](#3. -m:仅更新修改时间)

[4. -t:使用指定时间](#4. -t:使用指定时间)

[5. -d:以人类可读的时间格式指定时间](#5. -d:以人类可读的时间格式指定时间)

[6. -c:不创建文件](#6. -c:不创建文件)

[7. -r:使用另一个文件的时间戳](#7. -r:使用另一个文件的时间戳)

[8. --help:显示帮助信息](#8. --help:显示帮助信息)

使用场景与示例

[1. 创建空文件](#1. 创建空文件)

[2. 一次创建多个空文件](#2. 一次创建多个空文件)

[3. 更新访问时间](#3. 更新访问时间)

[4. 更新修改时间](#4. 更新修改时间)

[5. 设置特定的时间戳](#5. 设置特定的时间戳)

[使用 -t 设置时间](#使用 -t 设置时间)

[使用 -d 设置时间](#使用 -d 设置时间)

[6. 将一个文件的时间戳应用到另一个文件](#6. 将一个文件的时间戳应用到另一个文件)

[7. 不创建文件,只更新现有文件的时间](#7. 不创建文件,只更新现有文件的时间)

[8. 创建多个文件并更新时间戳](#8. 创建多个文件并更新时间戳)

检查时间戳

注意事项


touch 是 Linux/Unix 系统中一个常用的命令,主要用于创建空文件或修改文件的时间戳(访问时间和修改时间)。它用途简单却非常实用,尤其是在脚本编写或文件管理中。

以下是对 touch 命令的详细讲解,包括语法、常用选项、使用场景和示例。


基本语法

bash 复制代码
touch [选项] [文件...]
  • 文件:指定要操作的文件,可以是一个或多个。
  • 选项 :用于控制 touch 的行为。

主要功能

  1. 创建空文件 :如果指定的文件不存在,touch 会创建一个新的空文件。
  2. 修改时间戳
    • 访问时间 (Access time,atime):文件最近被读取的时间。
    • 修改时间 (Modification time,mtime):文件内容最近被修改的时间。

常用选项详解

1. 创建空文件

如果指定的文件不存在,touch 会创建一个新的空文件:

bash 复制代码
touch file.txt

此命令创建一个名为 file.txt 的空文件。


2. -a:仅更新访问时间

bash 复制代码
touch -a file.txt
  • 只更新文件的访问时间,不改变修改时间。
  • 如果文件不存在,会自动创建。

3. -m:仅更新修改时间

bash 复制代码
touch -m file.txt
  • 只更新文件的修改时间,不改变访问时间。
  • 如果文件不存在,会自动创建。

4. -t:使用指定时间

指定时间戳格式为 [[CC]YY]MMDDhhmm[.ss],其中:

  • CC:世纪(如 19 表示 1900 年代,20 表示 2000 年代)。
  • YY:年份。
  • MM:月份(01-12)。
  • DD:日期(01-31)。
  • hh:小时(00-23)。
  • mm:分钟(00-59)。
  • .ss:可选的秒数(00-59)。

示例:

bash 复制代码
touch -t 202501071230.45 file.txt

将文件的时间戳设置为 2025 年 1 月 7 日 12:30:45


5. -d:以人类可读的时间格式指定时间

-d 选项可以直接使用类似 YYYY-MM-DD hh:mm:ss 的格式指定时间:

bash 复制代码
touch -d "2025-01-07 12:30:45" file.txt

效果与 -t 类似,但语法更加直观。


6. -c:不创建文件

如果指定的文件不存在,touch 不会创建新文件。

bash 复制代码
touch -c file.txt
  • 如果文件存在,更新时间戳。
  • 如果文件不存在,不会创建。

7. -r:使用另一个文件的时间戳

将目标文件的时间戳设置为参考文件的时间戳:

bash 复制代码
touch -r reference.txt file.txt

这会将 file.txt 的时间戳设置为与 reference.txt 相同。


8. --help:显示帮助信息

显示 touch 的帮助信息:

bash 复制代码
touch --help

使用场景与示例

1. 创建空文件

这是 touch 最常见的用法:

bash 复制代码
touch newfile.txt

如果 newfile.txt 已存在,touch 只会更新其时间戳,而不会更改其内容。


2. 一次创建多个空文件

bash 复制代码
touch file1.txt file2.txt file3.txt

会同时创建 file1.txtfile2.txtfile3.txt


3. 更新访问时间

bash 复制代码
touch -a file.txt

仅更新文件的访问时间。


4. 更新修改时间

bash 复制代码
touch -m file.txt

仅更新文件的修改时间。


5. 设置特定的时间戳

使用 -t 设置时间
bash 复制代码
touch -t 202501071230 file.txt

将文件时间设置为 2025 年 1 月 7 日 12:30:00

使用 -d 设置时间
bash 复制代码
touch -d "2025-01-07 12:30:45" file.txt

将文件时间设置为 2025 年 1 月 7 日 12:30:45


6. 将一个文件的时间戳应用到另一个文件

bash 复制代码
touch -r source.txt target.txt

target.txt 的时间戳更新为与 source.txt 相同。


7. 不创建文件,只更新现有文件的时间

bash 复制代码
touch -c file.txt
  • 如果文件存在,则更新其时间戳。
  • 如果文件不存在,则不创建新文件。

8. 创建多个文件并更新时间戳

bash 复制代码
touch file1.txt file2.txt
  • 如果 file1.txtfile2.txt 不存在,touch 会创建它们。
  • 如果它们已存在,则只更新时间戳。

检查时间戳

可以使用 ls 命令查看文件的时间戳:

  • 查看文件的修改时间(mtime):

    bash 复制代码
    ls -l file.txt
  • 查看文件的访问时间(atime):

    bash 复制代码
    ls -lu file.txt
  • 查看文件的状态改变时间(ctime):

    bash 复制代码
    ls -lc file.txt

注意事项

  1. 文件权限 :要使用 touch 修改文件时间戳,用户必须对文件有写权限。如果没有权限,会报错:

    bash 复制代码
    touch: cannot touch 'file.txt': Permission denied
  2. 时间格式 :使用 -t-d 设置时间时,需注意正确的时间格式,否则会报错或导致意外结果。

  3. 不影响文件内容touch 命令只修改文件的时间戳,不会更改文件的内容。

相关推荐
YH_DevJourney5 分钟前
Linux-C/C++《C/9、信号:基础》(基本概念、信号分类、信号传递等)
linux·c语言·c++
千墨28 分钟前
VMware安装Centos 9虚拟机+设置共享文件夹+远程登录
linux·运维·centos
ChinaRainbowSea1 小时前
1. Linux下 MySQL 的详细安装与使用
linux·数据库·sql·mysql·adb
致奋斗的我们2 小时前
Nginx反向代理及负载均衡
linux·运维·mysql·nginx·负载均衡·shell·openeluer
百锦再2 小时前
在Linux上创建一个Docker容器并在其中执行Python脚本
linux·python·docker
忧虑的乌龟蛋2 小时前
嵌入式 Linux:使用设备树驱动GPIO全流程
linux·服务器·嵌入式·imx6ull·gpio·点灯·pinctrl
朝九晚五ฺ3 小时前
【Linux探索学习】第三十弹——线程互斥与同步(上):深入理解线程保证安全的机制
linux·运维·学习
小林熬夜学编程3 小时前
【MySQL】第八弹---全面解析数据库表的增删改查操作:从创建到检索、排序与分页
linux·开发语言·数据库·mysql·算法
m0_748236113 小时前
Spring Boot 实战:轻松实现文件上传与下载功能
linux·spring boot·后端
鱼不如渔3 小时前
leetcode刷题第十三天——二叉树Ⅲ
linux·算法·leetcode