Linux系统之touch命令的基本使用

江湖有缘
• 阅读 375

Linux系统之touch命令的基本使用

一、touch命令介绍

1. touch命令简介

touch命令用于创建空文件或修改现有文件的时间戳。

2. touch命令作用

touch命令 有两个功能:

  • 创建新文件:如果你指定一个不存在的文件名作为touch命令的参数,它将在当前目录下创建一个新的空文件。这在需要快速创建一些空的文本文件或者配置文件时非常有用。

  • 更新文件的时间戳:对于已经存在的文件,touch命令会更新该文件的访问时间和修改时间标记为当前系统时间。这并不改变文件的内容,只是修改了文件的元数据,即文件的“最近访问时间”(atime)和“最近修改时间”(mtime)。这对于某些需要基于文件更新时间进行逻辑处理的情况非常有用,比如让cron任务认为某个脚本是“新”的,以便重新执行。

二、touch命令帮助

1. touch命令的帮助信息

在centos7.6中,touch命令是系统默认已安装的,可通过touch --help查询帮助信息。

[root@jeven ~]# touch --help
Usage: touch [OPTION]... FILE...
Update the access and modification times of each FILE to the current time.

A FILE argument that does not exist is created empty, unless -c or -h
is supplied.

A FILE argument string of - is handled specially and causes touch to
change the times of the file associated with standard output.

Mandatory arguments to long options are mandatory for short options too.
  -a                     change only the access time
  -c, --no-create        do not create any files
  -d, --date=STRING      parse STRING and use it instead of current time
  -f                     (ignored)
  -h, --no-dereference   affect each symbolic link instead of any referenced
                         file (useful only on systems that can change the
                         timestamps of a symlink)
  -m                     change only the modification time
  -r, --reference=FILE   use this file's times instead of current time
  -t STAMP               use [[CC]YY]MMDDhhmm[.ss] instead of current time
      --time=WORD        change the specified time:
                           WORD is access, atime, or use: equivalent to -a
                           WORD is modify or mtime: equivalent to -m
      --help     display this help and exit
      --version  output version information and exit

Note that the -d and -t options accept different time-date formats.

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'touch invocation'

2. touch命令的选项解释

touch命令的选项解释

-a:仅修改文件的访问时间(atime)。
-c:如果文件不存在,不要创建新文件。
-d:设置文件的时间戳为指定时间,可以使用各种格式的日期时间值,如“2021-12-31 23:59:59”、“next Friday”、“+3 hours”等。
-m:仅修改文件的修改时间(mtime)。
-r:将目标文件的时间戳与指定文件的时间戳相同。
-t:设置文件的访问时间和修改时间为指定时间,格式与-d选项相同。
--help:在线帮助;
--version:显示版本信息。

三、touch命令的基本使用

1. 查看touch工具版本

查看touch工具版本,可以看到在centos7.6中默认安装的版本为 8.22

[root@jeven ~]# touch --version
touch (GNU coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Paul Rubin, Arnold Robbins, Jim Kingdon,
David MacKenzie, and Randy Smith.

2. 创建空文件

使用touch命令创建空文件

[root@jeven tmp]# touch file01.txt
[root@jeven tmp]# ls
file01.txt

3.查看空文件属性

查看touch创建的空文件属性

[root@jeven tmp]# file file01.txt 
file01.txt: empty
  • 写入文本内容后,再次查看文件属性。
[root@jeven tmp]# echo aa > file01.txt 
[root@jeven tmp]# file file01.txt 
file01.txt: ASCII text

4. 修改文件时间戳

  • 查看当前文件的时间戳
[root@jeven tmp]# stat file01.txt 
  File: ‘file01.txt’
  Size: 3             Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 18451793    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-07-10 19:55:25.464098671 +0800
Modify: 2023-07-10 19:55:21.487098520 +0800
Change: 2023-07-10 19:55:21.487098520 +0800
 Birth: -
  • 要修改文件的访问时间和修改时间为当前时间
touch -t $(date +"%Y%m%d%H%M.%S") file01.txt 

Linux系统之touch命令的基本使用

5. 文件不存在时不创建

使用-c选项,当文件不存在时,则不创建该文件。

[root@jeven tmp]# touch -c aa
[root@jeven tmp]# ls
file01.txt

四、总结

使用touch命令时,有几点注意事项需要留意:

  1. 权限问题:你需要有足够权限才能使用touch命令创建或修改文件的时间戳。如果没有相应的权限,比如尝试在没有写权限的目录下创建文件,命令将会失败并返回错误信息。

  2. 仅修改时间戳touch命令主要作用是修改文件的访问和修改时间戳,并不会改变文件的实际内容。如果你需要编辑文件内容,应该使用如vinanoecho等其他命令或工具。

  3. 创建新文件:当指定的文件名不存在时,touch会创建一个新的空文件。如果文件已存在,它不会被清空,只是时间戳会被更新。

  4. 更新时间选项:使用-a只更新访问时间(atime),使用-m只更新修改时间(mtime)。如果不指定,两者都会被更新为当前时间。

  5. 时间戳设定:使用-t-d选项可以设定特定的时间戳,而不是使用当前时间。确保按照正确的格式输入日期和时间,否则命令可能无法正确执行。

  6. 引用文件时间戳:使用-r选项可以将一个文件的时间戳复制到另一个文件上,这在批量调整文件时间时特别有用。

  7. 防止创建文件:加上-c选项后,如果文件已存在,touch将只更新其时间戳而不创建新文件。如果文件不存在,命令不做任何操作且不返回错误。

  8. 环境变量与别名:在某些系统或用户的配置中,touch命令可能已被别名重定义或受环境变量影响,因此了解当前环境的具体行为是很重要的,特别是在执行自动化脚本时。

点赞
收藏
评论区
推荐文章
我是阿沐 我是阿沐
3年前
怎么办,linux的常用命令就是记不住?
前言Linux可以说是前后端开发者必备的技能,那么阿沐本身大学主修Linux操作系统嵌入式,虽然毕业之后并没与从事与操作系统方面开发;但是还是身在互联网,保持前后端开发工作,涉及到服务器部署、日志分析统计、vim编辑等等。linux的基础命令可以说我们必须掌握的,不然有的面试我们都过不了。所以万字总结linux实用的基本命令,小伙伴们收藏起来,每天必看必敲
Stella981 Stella981
3年前
LInux根目录详解
【Linux系统目录结构】登录系统后,在当前命令窗口下输入 ls/ 你会看到!image(http://www.92csz.com/study/linux/images/4_20.png)以下是对这些目录的解释:/binbin是Binary的缩写。这个目录存放着最经常使用的命令。/boot这里存放的是启动Lin
Stella981 Stella981
3年前
Shell 助力开发效率提升
(题图:毕业旅行之决战青海湖)本文主要来源于小组内部的一个小的分享,这里整理成一篇文章po出来. 题目叫“Shell助力开发效率提升”,更切题的应该是叫“命令行”提升开发效率,这里并没有讲到Shell编程,而是主要介绍Linux或者Mac下常用的一些基本工具命令来帮助处理一些日常事务. (其实之前这篇文章Mac软件推荐(续)之
Stella981 Stella981
3年前
Linux用户管理命令
Linux用户管理命令Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,必须先向管理员申请一个账号。Linux的用户至少要属于一个组。添加用户基本语法​useradd【选项】用户名示例​useraddxiaoming
Stella981 Stella981
3年前
Linux系统的基本操作
_20200727_Linux目录结构基本介绍Linux的文件系统是采用层级式的树状结构,在此结构中的最上层是/根目录tip1:在Linux世界里,一切皆是文件示例/bin:bin是Binary的缩写,这个目录存放着最经常使用的命令。
Wesley13 Wesley13
3年前
Java 程序员必须掌握的 Linux 命令
  作为一个Java开发人员,有些常用的Linux命令必须掌握。即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令。因为很多服务器上都是Linux系统。所以,要和服务器机器交互,就要通过shell命令。  本文并不会对所有命令进行详细讲解,只给出常见用法和解释。具体用法可以使用–help查看帮助或者直接通过goog
Stella981 Stella981
3年前
Perl文件、目录常用操作
注意,这些操作的对象是文件名(相对路径/绝对路径),而非文件/目录句柄,句柄只是perl和文件系统中文件的关联通道,而非实体对象。创建文件在unix类操作系统中有一个touch命令可以非常方便的创建文件,还能批量创建一些名称规律的文件。但实际上touch的主要介绍中却是"修改文件时间戳",创建文件只不过是它的辅助能力。如果没有touch命令
Stella981 Stella981
3年前
Linux—文件命令之touch命令
下面总结一下对于文件的操作命令:satat命令:用于显示文件的详细信息,包括文件、设备、gid、各种时间等。命令格式:stat filename!(https://oscimg.oschina.net/oscnet/e65f9a778be16a16e51d1eae1bed034728c.png)touch的两个功能:1、新建文件,如
江湖有缘 江湖有缘
1年前
Linux系统之dnf包管理器的基本使用
Linux系统之dnf包管理器的基本使用
江湖有缘 江湖有缘
1年前
Linux系统基础之locate命令
Linux系统基础之locate命令
江湖有缘
江湖有缘
Lv1
各大IT社区专家博主,华为HCIE云计算认证等,路漫漫其修远兮,吾将上下而求索!
文章
12
粉丝
1
获赞
3