linux 命令 touch

Linux 的 touch 命令主要用于 创建空文件修改文件的时间戳(访问时间、修改时间)。以下是其核心用法和实用示例:

基本语法

touch 选项 文件名...

核心功能

1. 创建空文件

  • 如果文件不存在,则创建空文件;如果存在,则更新其时间戳为当前时间。
复制代码
touch file1.txt           # 创建 file1.txt(若不存在)
touch file1.txt file2.txt # 同时创建多个文件

2. 修改文件时间戳

  • 默认行为 :更新文件的 访问时间(atime)修改时间(mtime) 为当前时间。
复制代码
touch existing_file.txt  # 更新时间戳(不修改内容)

常用选项

选项 说明
-a 仅更新 访问时间(atime)
-m 仅更新 修改时间(mtime)
-c 不创建新文件(仅更新现有文件的时间戳)
-t <时间> 指定时间戳(格式:[[CC]YY]MMDDhhmm[.ss]
-r <参考文件> 使用参考文件的时间戳(同步两个文件的时间)

实用示例

1. 避免创建文件(仅更新时间戳)

复制代码
touch -c old_file.txt    # 若文件存在则更新时间戳,否则不创建

2. 仅修改访问时间或修改时间

复制代码
touch -a file.txt        # 仅更新访问时间
touch -m file.txt        # 仅更新修改时间

3. 指定自定义时间戳

复制代码
# 格式:YYYYMMDDHHMM.SS(示例:2023年10月5日 14:30:45)
touch -t 202310051430.45 file.txt

4. 同步文件时间戳

复制代码
touch -r source.txt target.txt  # 将 target.txt 的时间戳设为与 source.txt 相同

5. 批量创建文件

复制代码
touch {1..5}.log        # 创建 1.log, 2.log, ..., 5.log
touch dir/file{1..3}.md # 在 dir 目录下创建 file1.md, file2.md, file3.md

时间戳查看

  • 使用 ls 查看文件时间戳:

    复制代码
    ls -l file.txt        # 显示修改时间(mtime)
    ls -lu file.txt       # 显示访问时间(atime)
    ls -lc file.txt       # 显示状态变更时间(ctime,如权限修改)

注意事项

  1. 权限问题 :若目录不可写,需使用 sudo

    复制代码
    sudo touch /root/file.txt
  2. 时间格式 :使用 -t 时,年份可简写(如 231005 表示 20231005)。

  3. 隐藏文件 :文件名以 . 开头可创建隐藏文件:

    复制代码
    touch .hidden_file

应用场景

  • 创建占位文件:用于脚本或目录结构初始化。

  • 更新时间戳:触发依赖时间的任务(如日志轮转)。

  • 修复时间:同步备份文件的时间信息。

通过灵活使用选项,touch 能高效管理文件时间属性。更多细节可通过 man touch 查看手册。

其他创建文件方式

在 Linux 命令行中,>>> 是用于输出重定向的操作符,用于将命令的输出内容写入文件。以下是它们的区别和用法:

1. >:覆盖写入文件

> a.txt # 删除文件内容

echo "回首向来萧瑟处" > a.txt #写入文件

2. >>:追加写入文件

相关推荐
Fu_Lin_1 分钟前
Qt嵌入式从零基础到精通(01):Qt嵌入式开发全景图:从桌面Qt到ARM Linux
linux·arm开发·qt·qt5·嵌入式linux
池央4 分钟前
NAS里的大文件怎么快速传?用Copyparty搭建轻量文件服务器
运维·服务器·cpolar
金海境科技5 分钟前
【服务器数据恢复】H3C CAS虚拟化平台HP存储qcow2文件损坏快照丢失数据恢复案例
服务器·数据库·经验分享
lczllx10 分钟前
从 TCP 90μs 到 SHM 28μs:我的 RPC 框架零拷贝优化历程
linux·后端
发量惊人的中年网工1 小时前
AI服务器托管怎么选机房?GPU集群对机柜、电力和网络的硬要求
服务器·网络·人工智能
盐焗鹌鹑蛋1 小时前
【Linux】权限
linux
窝子面1 小时前
认识Docker与启动容器与镜像的关系
运维·docker·容器
玖玥拾1 小时前
Unity 3D 笔记(十五)Unity/C# Socket 网络笔记4
服务器·网络·unity·c#
小此方1 小时前
Re:Linux系统篇(四十六)信号篇·四:一文串联操作系统底层:时钟中断、内核态切换、系统调用与 Linux 信号处理全解析
linux·驱动开发·信号处理
编程序的员1 小时前
使用OpenTelemetry来监控GoLang应用
运维·golang·monitoring·apm·opentelemetry