Linux touch命令不仅可以用于在Linux上创建空文件。 您可以使用它来更改现有文件的时间戳,包括其访问权限和修改时间。 本文介绍了8种可以通过Linux终端使用touch命令的方案。

我们在Ubuntu 18.04 LTS/Ubuntu 18.10系统上运行了本文中提到的命令和过程。 由于touch命令是命令行实用程序,因此我们将在本文中使用Ubuntu终端。 您可以通过系统Dash或Ctrl + Alt + T快捷方式打开终端。

linuxidc@linuxidc:~/linuxidc.com$ touch --help
用法:touch [选项]... 文件...
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.

必选参数对长短选项同时适用。
-a   只更改访问时间
-c, --no-create 不创建任何文件
-d, --date=字符串 使用指定字符串表示时间而非当前时间
-f   (忽略)
-h, --no-dereference  会影响符号链接本身,而非符号链接所指示的目的地
(当系统支持更改符号链接的所有者时,此选项才有用)
-m   只更改修改时间
-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  显示此帮助信息并退出
--version  显示版本信息并退出

请注意,-d 和-t 选项可接受不同的时间/日期格式。

1.使用touch命令创建一个空文件

touch命令最简单和最基本的用法是通过命令行创建一个空文件。 如果您是精通终端的人,可以通过以下命令在命令行中快速创建新文件:

$ touch “filename”

示例:

$ touch linuxidc

在下面的示例中,我通过touch命令创建了一个名为“linuxidc”的空文件。 然后我使用ls命令查看系统中是否存在该文件,因为touch命令不会提示文件是否已创建。

2.使用touch命令一次创建多个文件

尽管cat命令和标准重定向符号也是通过命令行创建文件的方法,但touch命令具有优势,因为您可以一次创建多个文件。 您可以使用以下语法通过touch命令创建多个文件:

$ touch linuxidc1 linuxidc2 linuxidc3 ….

在下面的示例中,我通过touch命令同时创建了三个文件,然后使用ls命令查看这些文件的存在:

3.强制避免使用touch命令创建新文件

有时,如果新文件不存在,则需要避免创建新文件。 在这种情况下,您可以使用touch命令使用'-c'选项,如下所示:

$ touch -c “filename”

在下面的示例中,我使用touch命令避免创建上述新文件。

touch -c linuxidc

当我使用ls命令列出该文件时,以下输出将验证我的系统中是否存在此类文件。


4.更改文件的访问和修改时间

touch命令的另一个用途是更改文件的访问时间和修改时间。

让我们举一个例子来说明如何做到这一点。 我通过touch命令创建了一个名为“linuxmi”的文件,并通过stat命令查看了它的统计信息:

然后我输入了以下touch命令:

$ touch linuxmi

此touch命令将访问和修改时间更改为再次为“linuxmi”运行touch命令的时间。 您可以在下上图中看到更改的访问和修改时间。

5.更改访问时间或修改时间

我们可以选择仅通过touch命令更改其中一个,而不是更改访问和修改时间。

在下面的示例中,我创建了一个名为“linuxidc”的文件,并通过stat命令查看统计信息:

我可以通过此文件上的touch命令使用'-a'选项来仅更改此文件的访问时间:

$ touch -a linuxidc

stat命令的输出现在显示访问时间已更改为我使用'-a'选项运行touch命令的时间:

我可以通过此文件上的touch命令使用'-m'选项仅更改此文件的修改时间:

$ touch -m linuxidc

stat命令的输出现在显示修改时间已更改为使用'-m'选项运行touch命令的时间:

6.如何将访问和修改时间从一个文件复制到另一个文件

我们假设有一个名为linuxidcA的文件:

另一个名为linuxidcB的文件:

如果要将linuxidcA的访问和修改时间更改为linuxidcB的访问和修改时间,可以使用如下touch命令:

$ touch linuxidcA -r sampleFileB

上图中stat命令的输出显示linuxidcA现在具有与samplefileB相同的访问和修改值。

7.使用指定的时间戳创建新文件

要创建具有指定时间戳的新空文件而不是创建它的实际时间,可以使用touch命令的以下语法:

$ touch -t YYMMDDHHMM.SS “filename”

以下示例显示了我的linuxidc上的stat命令如何显示其访问和修改时间是基于我通过touch命令创建时提供的时间戳:
创建具有指定时间戳的新文件

touch -t 2006151230.30 linuxidc

8.将文件的时间戳更改为其他时间

您可以使用touch命令的以下语法将现有文件的时间戳更改为其他时间:

$ touch -c -t YYMMDDHHMM.SS “filename”
touch -c -t 2008191130.30 linuxidc

在下面的示例中,我通过touch命令更改了现有文件的时间戳,然后通过该示例文件上的stat命令验证了更改:

将文件的时间戳更改为其他时间
通过我们在本文中介绍的基本但有用的场景,您可以开始掌握touch命令并使用它通过Linux命令行快速执行一些看似复杂的任务。

Linux Touch命令的8种使用技巧的更多相关文章

  1. Linux Touch命令的8种常见使用方法

    Linux touch命令不仅可以用于在Linux上创建空文件. 您可以使用它来更改现有文件的时间戳,包括其访问权限和修改时间. 本文介绍了8种可以通过Linux终端使用touch命令的方案. 我们在 ...

  2. Linux touch命令详解

    Linux touch命令 Linux touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间.若文件不存在,系统会建立一个新的文件. 用法: touch [-acfm][-d<日 ...

  3. Linux常用命令(第二版) --Shell应用技巧

    Shell应用技巧 小技巧: 1.命令补全功能: <Tab>键 2.清屏: Ctrl+l 3.删除光标前所有内容: Ctrl+u 4.命令历史记录: history 这时:  !histo ...

  4. 在Windows中运行Linux bash命令的几种方法

    如果你正在课程中正在学习 shell 脚本,那么需要使用 Linux 命令来练习命令和脚本. 你的学校实验室可能安装了 Linux,但是你自己没有安装了 Linux 的笔记本电脑,而是像其他人一样的 ...

  5. Linux -- touch 命令

    在Linux中,每个文件都关联一个时间戳,并且每个文件搜会存储最近一次访问的时间.最近一次修改的时间和最近一次变更的时间等信息.所以,无论何时我们创建一个新文件,访问或者修改一个已经存在的文件,文件的 ...

  6. 今天给各位介绍Linux touch命令详述

    触摸命令 touch命令有两个功能:一个是将现有文件的时间戳更新为系统的当前时间(默认模式),它们的数据将保持不变;第二个是创建一个新的空文件. 语法 触摸(可选) 最常见的用法:touch file ...

  7. Linux touch命令

    touch命令不常用,一般用于更改文件时间戳,或创建一个空文件 命令选项 -a:只更改访问时间 -c:--no-create 不创建任何文件 -d:--date=字符串 使用指定字符串表示时间而非当前 ...

  8. linux下命令行操作快捷键及技巧

      历史相关命令 !!:执行上一条命令 !num:执行历史命令中第num条命令 !-num:执行历史命令中倒数第num条命令 !?string?:执行最近一条包含有string字符串的命令 Ctrl+ ...

  9. linux touch命令 创建文件

    touch 创建文件,用法,touch test.txt,如果文件存在,则表示修改当前文件时间 [root@MongoDB ~]# touch /data/text.txt [root@MongoDB ...

随机推荐

  1. 7.24 IO多路复用和协程代码笔记

    1. 复习 # !/usr/bin/env python # !--*--coding:utf-8 --*-- # !@Time :2018/7/23 11:49 # !@Author TrueNew ...

  2. myeclipse乱码/GBK只支持中文

    Windows>>Pereferences>>General>Editors>>Spelling>>Encoding选项下选择other,然后输入 ...

  3. Oracle备份恢复之热备份恢复及异机恢复

    原理: 数据库必须运行在归档模式下,否则备份没有意义.备份前冻结块头,使scn号不变化,然后cp物理文件,最后解冻块头.此过程dml语句可以正常执行,动作被写在日志文件里面,当解冻scn号后,日志文件 ...

  4. IOS UIView圆角,阴影,边框,渐增光泽

    圆角 sampleView.layer.cornerRadius = 2.5; // 圓角的弧度sampleView.layer.masksToBounds = YES; 阴影 sampleView. ...

  5. Git 安装及使用小结

    Git 安装及使用小结 a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; outline ...

  6. 正则表达式(二):Unicode诸问题上篇(转)

    原文:http://www.infoq.com/cn/news/2011/02/regular-expressions-unicode 关于正则表达式的文档很多,但大部分都是英文的,即便有中文的文档, ...

  7. HIVE表保存的路径

    HIVE表保存的默认路径在${HIVE_HOME}/conf/hive-site.xml配置文件的hive.metastore.warehouse.dir属性指定

  8. ansible-playbook剧本

    Playbooks 是一种简单的配置管理系统与多机器部署系统的基础, 非常适合于复杂应用的部署 由 yaml 语言编写, 运行过程中, ansible-playbook 命令根据自上而下的顺序依次执行 ...

  9. eclipse 64和32位切换

    JAVA_HOME配置的是JAVA_HOME=D:\Java\32\jdk1.6.0_13

  10. linux mysql 统一字符编码

    强调:配置文件中的注释可以有中文,但是配置项中不能出现中文 mysql> show variables like '%char%'; +--------------------------+-- ...