首页/系统/Linux 运维命令速查/cron 命令中的百分号转义
本包目录(613 条)
文件与目录76 条文本处理77 条网络命令82 条进程与作业69 条磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条
定时任务与计划50 条

cron 命令中的百分号转义

在 crontab 任务行里 % 有特殊含义:未转义时被转成换行、其后内容作为命令标准输入;date 格式化必须写成 \% 或用脚本包装。

Linux 运维命令速查系统更新于 2026-10-12
用途在任务行里正确书写含 % 的命令
规则\% 才作为字面百分号

正确与错误

正确与错误
# 错误:date +%F 的 % 未转义
0 1 * * * echo $(date +%F) > /tmp/d.txt

# 正确写法一:转义
0 1 * * * echo $(date +\%F) > /tmp/d.txt

# 正确写法二(推荐):包装脚本
0 1 * * * /opt/scripts/write-date.sh
任务行中第一个未转义 % 之后全部被视为命令的 stdin,表现为命令被触发但参数悄悄丢失。

易错点

  • 仅 crontab 任务行有此规则;/etc/cron.d 与脚本文件内不受影响,但统一用脚本最省心
  • crontab 里写 date +%s 总出诡异结果;上线前用与 cron 相同的环境空跑一遍

数据来源与参考

  • man 5 crontab(percent 处理规则)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌