Linux中用touch批量创建空文件最高效的方式是花括号扩展,如touch file{1..10}.txt;不可加引号,否则无法展开;大量文件需用xargs分批或循环处理。

Linux 中用 touch 批量创建空文件,核心是利用 shell 的**花括号扩展(brace expansion)**,而不是靠引号或循环硬拼——写对了效率高、一行搞定;写错了可能只建出一个带花括号的怪名字文件。
用花括号快速编号建文件
这是最常用也最高效的方式。shell 在执行 touch 前会先把 {1..5} 展开成 1 2 3 4 5,再传给命令:
-
touch file{1..10}.txt→ 创建file1.txt到file10.txt -
touch log_{01..05}.log→ 创建log_01.log到log_05.log(补零用{01..05}) -
touch {a,b,c}_{1,2}→ 创建a_1、a_2、b_1、b_2、c_1、c_2
⚠️ 注意:不能加引号包裹花括号,比如 "file{1..3}" 会被当字面名,只建一个叫 file{1..3} 的文件。
批量建多个不同名文件(无规律)
如果文件名没有编号规律,直接空格分隔即可,适合十几二十个文件:
touch config.json cache.db temp.lock-
touch /tmp/one.txt /var/log/two.log ~/three.tmp(支持混合路径)
文件名含空格?每个都单独加引号:touch "my file.txt" "log 2026.log",不能写成 "my file.txt log 2026.log"。
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
建上万个文件时防报错
当数量太大(如 file{1..50000}),shell 可能报 Argument list too long。这时要拆分处理:
- 用
xargs分批:printf 'file%05d\n' {1..50000} | xargs -n 1000 touch - 用循环更稳妥(稍慢但稳定):
for i in {1..50000}; do touch "file$i"; done
别用 eval 拼超长命令,难调试还容易越界。
顺便设时间戳或控制权限
touch 本身不设权限,新建文件权限由当前 umask 决定(如 umask 0022 → 文件默认 644)。需要固定权限,建议后续补 chmod 或换用 install:
- 设统一时间戳(推荐跨平台用
-t):touch -t 202609250900.00 file{1..10}.txt - 临时改权限:
touch file{1..5}.txt && chmod 600 *.txt - 脚本中要确保权限:
install -m 600 /dev/null filename比touch更直接
不复杂但容易忽略。

















