【linux009】文件操作命令篇 - touch 命令

devtools/2024/10/17 15:49:50/

文章目录

    • touch 命令
      • 1、基本用法
      • 2、常见选项
      • 3、举例
      • 4、注意事项

touch 命令

touch 是 Linux 系统中的一个常用命令,用于创建空文件更新已有文件的时间戳。它既可以用来快速生成新文件,也可以用来修改文件的访问时间(access time, atime)和修改时间(modification time, mtime)

1、基本用法

touch [选项] 文件名...

2、常见选项

  • -a:更新文件的访问时间(access time),而不改变修改时间(modification time)。
  • -c:如果文件不存在,则不创建文件,也不会报错。
  • -d:使用指定的字符串时间(而不是当前时间)来设置文件的访问和修改时间。时间格式可以是多种标准格式,例如 YYYYMMDDhhmm[.ss] 或描述性字符串如 next Wed
  • -f:如果文件是一个符号链接,则更新的是符号链接本身,而不是它指向的文件。
  • -h:类似于 -f 选项,如果文件是一个符号链接,则更新符号链接本身。这是 -f 的另一种写法,在某些实现中可能只支持其中一种。
  • -m:更新文件的修改时间(modification time),而不改变访问时间(access time)。
  • -r:使用指定文件的访问和修改时间来更新目标文件的时间戳。
  • -t:使用指定的时间(而不是当前时间)来设置文件的访问和修改时间。时间的格式是 [[CC]YY]MMDDhhmm[.ss],其中 CC 是世纪(可选),YY 是年份的后两位,MM 是月份,DD 是日期,hh 是小时,mm 是分钟,ss 是秒(可选)。
  • –time=TIME:设置要更新的时间类型。可以是 atime(访问时间)、mtime(修改时间)或 time(默认同时更新访问和修改时间)。
  • –help:显示 touch 命令的帮助信息并退出。

3、举例

-a 选项举例:

#只修改访问时间
touch -a filename

在这里插入图片描述

-m选项举例:

#只修改修改时间
touch -m filename	

在这里插入图片描述

-c 选项举例:

#如果文件不存在,不会创建新文件;只尝试更新已有文件的时间戳
touch -c filename

在这里插入图片描述

-t 选项举例:

#指定时间戳
touch -t 202410171230.30 filename

手动指定时间戳。格式为:

  • CCYY:世纪和年份(可选)。
  • MMDD:月份和日期。
  • hhmm:小时和分钟。
  • .ss:秒(可选)

在这里插入图片描述

-d选项举例:

#使用人类可读的时间字符串
touch -d "2024-10-17 12:30:00" filename	

在这里插入图片描述

-r 选项举例:

#将目标文件的时间戳设置为与源文件相同。
touch -r source_file target_file

在这里插入图片描述

–help 选项举例:

#显示帮助信息。
touch --help

在这里插入图片描述

--version选项举例:

#显示命令版本。
touch --version

在这里插入图片描述

4、注意事项

权限问题

  • 如果没有权限修改文件的时间戳或创建文件,touch 命令会失败。在这种情况下,可以使用 sudo
sudo touch filename

-c 选项防止意外创建文件

  • 在自动化脚本中,如果不希望误创建文件,建议使用 -c选项:
touch -c filename

时间格式的正确性

  • 使用 -t指定时间时,必须严格遵守格式,否则会报错。例如:
touch -t 202410171200 filename  # 正确格式
touch -t 2024-10-17 filename    # 错误格式

特殊时间戳的影响

  • 如果系统时间不正确,touch 会根据当前系统时间设置时间戳,因此在处理时间敏感任务时需要确保系统时间准确。

时间戳精度

  • 某些文件系统不支持高精度时间戳,秒级以下的时间可能会被忽略。
    在这里插入图片描述

http://www.ppmy.cn/devtools/126496.html

相关文章

【JVM】一文详解类加载器

文章目录 类加载器的概述类加载器的分类启动类加载器(Bootstrap ClassLoader )扩展类型加载器(ExClassLoader)系统类加载器(Application ClassLoader )总结 双亲委派机制概念双亲委派机制的优势 ClassLoaderfindClassdefineClassloadClass,findClass,def…

js 精确计算(加减乘除)

js 精确计算(加减乘除) 工具类CalcUtil.js class CalcUtil {// 两数相加calcAdd(num1, num2) {var r1, r2, m;try {r1 num1.toString().split(.)[1].length;} catch (e) {r1 0;}try {r2 num2.toString().split(.)[1].length;} catch (e) {r2 0;}m Math.pow(10, Math.max…

ESP32-C3实现非易失变量(Arduino IDE )

1效果 网页输入数据&#xff0c;串口打印数据。掉电后数据还在 2源码 #include <WiFi.h> // 包含WiFi库&#xff0c;用于处理WiFi连接 #include <WebServer.h> // 包含WebServer库&#xff0c;用于创建Web服务器 #include <Preferences.h> // 包含Prefere…

uni-app写的微信小程序如何体积太大如何处理

方法一&#xff1a;对主包进行分包处理&#xff0c;将使用url: /pages/components/equipment/equipment跳转页面的全部拆分为分包&#xff0c;如url: /pagesS/components/equipment/equipment 在pages.json中添加 "subPackages": [{ "root"…

TensorFlow 的核心概念

TensorFlow 是一个开源的机器学习框架&#xff0c;由 Google 开发和维护。它提供了一个强大的工具集&#xff0c;用于构建和训练各种机器学习模型。 TensorFlow 的核心概念是计算图&#xff08;Computational Graph&#xff09;。计算图由节点&#xff08;Nodes&#xff09;和…

开发与部署项目依赖管理之旅:Docker和venv区别

Docker与venv的区别 Docker和虚拟环境&#xff08;venv&#xff09;都是用于管理依赖关系和隔离环境的工具&#xff0c;但它们服务的目的和特点有所不同。下面是它们的详细比较。 虚拟环境&#xff08;venv&#xff09; 目的&#xff1a; 特定于Python&#xff1a;venv专为…

客户端、PC端、移动端集成发票真伪验真API接口返回值说明

客户端、pc端、移动端集成翔云发票查验接口&#xff0c;在现如今财务管理喝税务合规越来越严的背景下&#xff0c;集成发票真伪验真接口有助于提升财务工作效率&#xff0c;防止税务风险&#xff0c;简化发票管理流程&#xff0c;提升发票管理与报销效率&#xff0c;合规管理税…

JavaScript高级——ES6基础入门

前言 ES6&#xff08;ECMAScript 6&#xff09;&#xff0c;也被称为ES2015&#xff0c;是JavaScript的第六个版本.它于2015年发布&#xff0c;并在现代JavaScript开发中扮演了重要的角色. 学习方法: 看千遍&#xff0c;不如自己动手写一遍 遇到问题不要怕&#xff0c;微笑着…