命令简介

touch 是一个基本而常用的 Linux 命令,它的主要功能是创建新的空文件或更新已有文件/目录的时间戳(访问时间和修改时间)。虽然简单,但在许多场景下都会被用到,比如创建临时文件、修改文件时间戳等。

命令格式

1
touch [选项] 文件/目录

参数说明

参数 描述 备注
-a 仅更改访问时间
-c 若文件不存在,不会创建新文件
-m 仅更改修改时间
-r 使用指定文件的时间戳 touch -r ref_file new_file
-t 使用指定的时间戳作为新值 touch -t 202304152359.59 file
-d 使用指定字符串作为时间戳 touch -d '2023-04-15 23:59:59' file

命令实例

基本用法

1.创建新文件

1
2
3
4
5
# 创建新的空文件
touch file.txt

# 创建多个文件
touch file1.txt file2.txt file3.txt

2.更新文件时间戳

1
2
3
4
5
# 更新文件的访问时间
touch -a file.txt

# 更新文件的修改时间
touch -m file.txt

3.使用参考文件的时间戳

1
2
# 设置 new.txt 的时间戳和 ref.txt 一致
touch -r ref.txt new.txt

4.设置指定时间戳

1
2
3
4
5
# 使用指定时间作为新的时间戳
touch -d '2023-04-15 23:59:59' file.txt

# 或者使用数字形式的时间戳
touch -t 202304152359.59 file.txt

5.创建目录并设置时间戳

1
2
# 创建目录并设置时间戳
touch -d '2023-04-15 23:59:59' new_dir

高级用法

1.批量创建测试文件

1
2
3
4
5
6
#!/bin/bash

for i in {1..1000}
do
touch file_$i.txt
done

可以利用 touch 命令快速创建大量测试文件。

2.定时创建空文件

有时我们需要定期创建一个空文件,以记录某个时间点的状态或触发其他操作。可以结合 cron 等工具实现。

1
2
# 每天凌晨 2:00 创建一个空文件
0 2 * * * touch /tmp/$(date +\%Y\%m\%d).log

3.修改文件/目录时间戳

由于操作失误或其他原因,有时需要修改文件或目录的时间戳,避免引发其他问题。touch 命令可以很方便地完成此任务。

1
2
3
4
5
# 把所有文件的时间戳设置为当前时间
touch *

# 把目录时间戳设置为一小时前
touch -d '1 hour ago' directory

4.使用 touch 命令强制更新文件时间戳(使用 touch -f 命令强制更新文件时间戳时,即使文件不可写,也会更新文件时间戳。)

1
touch -f file.txt

总之,touch 命令虽然看似简单,但用途非常广泛。无论是在脚本编写、自动化运维,还是日常管理文件时间戳,都可以发挥它的优势。掌握好它,可以提高我们的工作效率。如有任何其他疑问,欢迎继续询问。