【Linux 每日一令】Ep.8:touch —— 凭空造物的“指尖魔法” ✨
在 Linux 的荒野中,如果你想凭空创造一个文件,或者赋予一个旧文件“重生的日期”,那么 touch 就是你指尖的魔法。
它是最轻量的命令之一,不涉及复杂的内容编辑,仅仅关乎“存在”与“时间”。🧐
🧐 它是做什么的?
touch 的本意是“触摸”。
如果文件不存在,它会创建一个空文件。
如果文件已存在,它会更新该文件的访问时间 (atime) 和修改时间 (mtime) 为当前系统时间。
🚀 基础用法
1. 凭空造物:
创建一个名为 new_note.txt 的空文件:
bash
touch new_note.txt
请谨慎使用此类代码。
你会发现目录下多了一个 0 字节的文件,干净利落。 🍃
2. 批量生产:
一次性创造多个文件:
bash
touch file1.txt file2.txt file3.txt
请谨慎使用此类代码。
⚠️ 常见误区与解决方案
误区:用 touch 写入内容touch 只能创建文件,不能往里面写字。如果你想创建并写入内容,应该使用 echo "hello" > file.txt 或者 vim。
提醒: 如果你只想确认一个文件是否存在而不小心 touch 了它,它的“修改时间”会被改掉,这可能会影响某些依赖时间的备份脚本。🛠️
🛠️ 必知参数(实用等级:中高)
1. -a (Access time) —— 只动嘴不动手 🕒
只更改“访问时间”,而不改变“修改时间”。
2. -m (Modification time) —— 伪造修改记录 📝
只更改“修改时间”。这在某些需要触发自动构建工具(如 make)时非常有用。
3. -t (Timestamp) —— 穿越时空 ⏳
你可以手动指定一个过去或未来的时间戳。
格式:[[CC]YY]MMDDhhmm[.ss]
bash
# 将文件时间改为 2026 年 1 月 1 日 中午 12 点
touch -t 202601011200 file.txt
请谨慎使用此类代码。
4. -c (No-create) —— 拒绝创造 🚫
如果文件不存在,不要创建它。这通常用于只想更新已有文件时间戳的情况。
💣 进阶骚操作:大括号连招 ⚡
想快速生成一整年的日志模板?
bash
touch log_{1..12}.txt
请谨慎使用此类代码。
瞬间生成 log_1.txt 到 log_12.txt,强迫症的福音。
🛡️ 保命技巧:配合通配符 🛡️
当你需要批量“刷新”某个目录下所有脚本的状态,让它们看起来像是刚刚被处理过:
bash
touch *.sh
请谨慎使用此类代码。
这样做可以让某些增量备份软件重新扫描这些文件。
📝 总结 📋
touch 文件:不存在则建,存在则刷时间。touch -t:自定义文件的“生辰八字”。touch {1..n}:批量造物的捷径。
重要提示:在自动化运维中,touch 常用于创建“锁文件(lock file)”来防止程序重复运行! 🛑
下集预告:
Ep.9:cat —— 窥探文件灵魂的“猫眼” 🐱