touch:命令创建文件

touch:创建空文件或改变文件的时间戳属性

  【功能说明】

    touch命令有两个功能:一是创建新的空文件;二是改变已有文件的时间戳属性

  【语法格式】

touch  [option]  [file]

touch  [选项]     [文件]

      提示:

      1. touch命令以及后面的选项和文件,每个元素之间都至少要有一个空格
      2. 注意区分touch和mkdir命令的功能,mkdir命令是创建空目录,而touch是创建空文件。
      3. 在linux中,一切皆文件。虽然touch命令不能创建目录,但是可以修改目录的时间戳。

  【选项说明】

参数说明解释说明
-a只更改指定文件的最后访问时间
-d使用字符串STRING代表的时间作为模板设置指定文件的时间属性
-m只更改指定文件的最后修改时间
-r file将指定文件的时间属性设置为与模板文件file的时间属性相同
-t STAMP使用[[CC]YY]MMDDhhmm[.ss]格式的时间设置文件的时间属性。格式的含义从左到右依次为:世纪、年、月、日、时、分、秒

  【使用范例】

    基础范例

      案例1:创建文件示例(文件事先不存在的情况)

[root@1-230 ~]# mkdir /test      #在根下新建一个test目录
[root@1-230 ~]# cd /test/        #切换到/text目录
[root@1-230 test]# touch aa.txt      #创建空文件aa.txt
[root@1-230 test]# ls           #查看到aa.txt文件创建成功
aa.txt
[root@1-230 test]# touch a.txt b.txt    #同时创建多个文件,类似mkdir创建多个目录
[root@1-230 test]# ls
aa.txt a.txt b.txt
[root@1-230 test]# touch scc{1..5}    #可以利用大括号“{ }”输出的字符序列批量创建文件
[root@1-230 test]# ls
aa.txt a.txt b.txt scc1 scc2 scc3 scc4 scc5

      案例2:更改文件的时间戳属性

[root@1-230 test]# stat aa.txt         #stat命令可以查看文件的时间戳属性,具体用法见后面stat命令
文件:"aa.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:35313153 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2018-10-30 23:11:37.065471839 +0800
最近更改:2018-10-30 23:11:37.065471839 +0800
最近改动:2018-10-30 23:11:37.065471839 +0800
创建时间:-

提示:

  说明:文件的时间戳属性分为访问时间、修改时间、状态改变时间


[root@1-230 test]# touch -a aa.txt       #-a 参数更改最后访问的时间
[root@1-230 test]# stat aa.txt
文件:"aa.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:35313153 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2018-10-30 23:17:06.329316946 +0800
最近更改:2018-10-30 23:11:37.065471839 +0800
最近改动:2018-10-30 23:17:06.329316946 +0800
创建时间:-

 

[root@1-230 test]# touch -m aa.txt     #-m参数更改最后修改的时间
[root@1-230 test]# stat aa.txt
文件:"aa.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:35313153 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2018-10-30 23:17:06.329316946 +0800
最近更改:2018-10-30 23:20:26.211938858 +0800
最近改动:2018-10-30 23:20:26.211938858 +0800
创建时间:-

      案例3:指定时间属性创建/修改文件

      可利用选项-d指定创建文件后的文件修改时间:

[root@1-230 test]# ls -lh aa.txt             #修改前的文件修改时间10月30日
-rw-r--r-- 1 root root 0 10月 30 23:20 aa.txt
[root@1-230 test]# touch -d 20181129 aa.txt      #指定创建文件后的文件修改时间为2018年11月29日
[root@1-230 test]# ls -lh aa.txt             #修改后时间为2018年11月29日
-rw-r--r-- 1 root root 0 11月 29 2018 aa.txt

      也可以利用选项-r,修改aa.txt的时间属性,使其和a.txt的时间属性一致:

[root@1-230 test]# ls -lh a.txt         #查看a.txt的修改时间
-rw-r--r-- 1 root root 0 10月 30 23:11 a.txt
[root@1-230 test]# touch -r a.txt aa.txt     #使用-r参数让a.txt的时间属性和a.txt一致
[root@1-230 test]# ls -lh aa.txt
-rw-r--r-- 1 root root 0 10月 30 23:11 aa.txt    #aa.txt文件的修改时间和a.txt一致

      还可以利用选项-t,将文件设置为201810312333.50时间格式

[root@1-230 test]# touch -t 201810312333.50 aa.txt
[root@1-230 test]# ls -lh --full-time aa.txt
-rw-r--r-- 1 root root 0 2018-10-31 23:33:50.000000000 +0800 aa.txt

查看设置的属性

  【扩展知识】

    这里扩展一点有关时间戳属性的知识

    GNU/Linux的文件有三种类型的时间戳:

Access: 2018-10-31 23:33:50.000000000 +0800    #最后访问文件的时间
Modify: 2018-10-31 23:33:50.000000000 +0800    #最后修改文件的时间
Change: 2018-10-30 23:35:05.120111040 +0800    #最后改变文件状态的时间

    对应ls命令,查看上述时间戳的选项如下:

mtime:最后修改时间(ls   -lt)  #修改文件内容,文件的修改时间(modify  time)会改变

ctime:状态改变时间(ls     -lc)#修改文件内容,移动文件或改变文件属性等,文件的change时间会改变

atime:最后访问时间(ls    -lu) #查看文件内容时,文件的访问时间(access   time)会改变

<think>好的,用户现在想了解如何使用touch命令创建文件。之前他们问过关于rmdir的问题,现在转向了文件创建,这可能是他们在学习Linux基础命令。我需要根据提供的引用内容来回答,同时参考之前的回答结构,保持一致性。 首先,用户提供的引用[1]提到touch命令的主要功能是创建空白文件和更新时间戳。引用[2]和[3]详细说明了选项和创建多个文件的例子。用户可能已经知道基本用法,但需要明确的步骤和示例,就像之前的rmdir回答那样。要确保回答结构清晰,分步骤说明,包括基础语法、创建多个文件、选项使用等。 需要注意到用户可能的需求:他们可能想快速创建单个或多个文件,或者了解如何避免意外创建文件(比如使用-c选项)。同时,用户可能对时间戳调整感兴趣,但根据问题,重点应放在创建文件上。 要避免复杂选项的过多解释,但可以简要提及常用选项,如-c、-t等,如引用[2]中提到的。同时,要提醒注意事项,比如权限问题,特殊字符处理,类似于之前的rmdir回答中的注意事项部分。 可能需要比较touch和其他命令的区别,比如使用重定向创建文件,但根据引用内容,可能不需要深入,除非用户提到。但用户的问题集中在touch本身,所以保持专注。 最后,生成相关问题,帮助用户深入,比如如何批量创建、更新时间戳等,类似之前的问题结构。确保引用标注正确,根据提供的引用[1]、[2]、[3]来支持各个部分。 需要检查是否覆盖了所有用户可能需要的场景:单个文件、多个文件、避免创建文件、指定时间戳等。同时,注意命令的正确语法和示例,确保用户能直接复制使用。 总结回答结构:基础创建创建多个、常用选项、注意事项、相关问题。保持与之前回答类似的格式,使用代码块、表格对比等,使信息更清晰。</think>### 如何使用 `touch` 命令创建文件 #### 1. 基础文件创建 **语法格式**: ```bash touch 文件名 ``` **功能说明**: - 若文件**不存在**,会自动创建一个空白文件(无内容,大小为0)[^1][^2]。 - 若文件**已存在**,默认会更新文件的访问时间(access time)和修改时间(modification time)[^1]。 **示例**: ```bash touch new_file.txt ``` 该命令会在当前目录下创建名为$new_file.txt$的空白文件。 --- #### 2. 批量创建多个文件 支持同时创建多个文件文件名用空格分隔或使用通配符: ```bash touch file1.txt file2.txt file3.txt # 直接指定多个名称 touch {doc,log,data}.txt # 使用大括号扩展批量命名 touch image_{1..5}.png # 生成序列文件 image_1.png 至 image_5.png ``` **注意**:若文件名含空格或特殊字符,需用引号包裹,如`touch "report 2024.txt"`[^2]。 --- #### 3. 避免意外创建文件 使用`-c`或`--no-create`选项时,若文件不存在,**不会创建文件**(仅更新时间戳): ```bash touch -c existing_file.txt ``` 此命令仅更新$existing_file.txt$的时间戳(若文件不存在则无操作)[^2]。 --- #### 4. 指定文件时间戳 通过`-t`选项可自定义时间戳(格式:`[[CC]YY]MMDDhhmm[.ss]`): ```bash touch -t 202405151830.00 timestamp_file # 设置时间为2024年5月15日18:30:00 ``` 或使用`-d`指定自然语言时间: ```bash touch -d "2 days ago" old_file # 设置时间为两天前 ``` 此功能常用于日志归档或测试场景[^2]。 --- ### 常用选项总结 | 选项 | 功能描述 | |------------|-----------------------------------------| | `-c` | 不创建文件,仅更新时间戳(若文件存在) | | `-t 时间` | 自定义时间戳 | | `-d 日期` | 使用自然语言设置时间 | | `-a` | 仅更新访问时间 | | `-m` | 仅更新修改时间 | --- ### 注意事项 1. **权限要求**:需对目标目录有写入权限,否则会提示`Permission denied`。 2. **隐藏文件**:可通过`touch .hidden_file`创建隐藏文件(以`.`开头的文件名)。 3. **时间同步**:默认使用系统时间,修改时间戳不会影响文件内容[^1][^2]。 --- ### 对比 `touch` 与 `echo` 创建文件 | 命令 | 特点 | |-----------------------|------------------------------| | `touch file` | 创建空白文件或更新时间戳 | | `echo "" > file` | 创建含空行的文件(非完全空) | | `> file` | 创建完全空白文件(等效touch)| --- ### 相关问题 1. 如何用`touch`命令仅修改文件的访问时间? 2. 如何批量创建带日期前缀的日志文件(如`log_20240515.txt`)? 3. `touch`命令修改时间戳时如何保留原始内容? [^1]: 引用自站内 Linux touch 命令详解 [^2]: 引用自站内 Linux 文件目录操作 – touch 命令说明 [^3]: 引用自站内 touch 批量创建文件示例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值