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 命令只修改文件的时间戳,不会更改文件的内容。

相关推荐
IC 见路不走1 小时前
LeetCode 第91题:解码方法
linux·运维·服务器
翻滚吧键盘1 小时前
查看linux中steam游戏的兼容性
linux·运维·游戏
小能喵1 小时前
Kali Linux Wifi 伪造热点
linux·安全·kali·kali linux
汀沿河2 小时前
8.1 prefix Tunning与Prompt Tunning模型微调方法
linux·运维·服务器·人工智能
zly35002 小时前
centos7 ping127.0.0.1不通
linux·运维·服务器
小哥山水之间3 小时前
基于dropbear实现嵌入式系统ssh服务端与客户端完整交互
linux
ldj20203 小时前
2025 Centos 安装PostgreSQL
linux·postgresql·centos
翻滚吧键盘3 小时前
opensuse tumbleweed上安装显卡驱动
linux
cui_win4 小时前
【内存】Linux 内核优化实战 - net.ipv4.tcp_tw_reuse
linux·网络·tcp/ip
CodeWithMe7 小时前
【Note】《深入理解Linux内核》 Chapter 15 :深入理解 Linux 页缓存
linux·spring·缓存