当前位置:首页>Linux>每天学一个Linux命令系列(14):diff - 对比两个配置文件到底差在哪

每天学一个Linux命令系列(14):diff - 对比两个配置文件到底差在哪

  • 2026-07-05 18:19:00
每天学一个Linux命令系列(14):diff - 对比两个配置文件到底差在哪
运维少年 · 科技观察

这个命令是干啥的

diff 用来对比两个文件的内容差异。你改了配置,想知道和原来有啥不同;你收到同事的代码,想知道他改了什么;你升级了软件包,发现配置文件变了,这些场景 diff 都是首选。

diff 的输出格式第一次看可能有点晕,但理解了就很直观。它告诉你哪些行需要删除(-)、哪些行需要添加(+),以及上下文是什么。

我最早用 diff 是在公司改 Nginx 配置的时候。改完 nginx.conf 发现网站挂了,赶紧 diff -u nginx.conf.bak nginx.conf 看自己改了啥,一眼就发现少了个分号。自那以后每次改配置前我都会先备份,改完就跑一下 diff 确认变更。

基本用法(3分钟上手)

先准备两个文件:

# 创建文件 old.txt
cat > old.txt << 'EOF'
服务器IP: 192.168.1.10
端口: 8080
日志级别: info
超时时间: 30
EOF

# 创建文件 new.txt(模拟修改后的版本)
cat > new.txt << 'EOF'
服务器IP: 192.168.1.10
端口: 8080
日志级别: debug
超时时间: 60
启用缓存: true
EOF

最简用法

# 直接对比两个文件
diff old.txt new.txt

输出:

3,4c3,5
< 日志级别: info
< 超时时间: 30
---
> 日志级别: debug
> 超时时间: 60
> 启用缓存: true

这输出有点难读。3,4c3,5 的意思是"第3-4行被改成第3-5行"。< 开头的是 old 文件的内容,> 开头的是 new 文件的内容。

统一格式(推荐,最好用的方式)

# -u 输出统一格式,包含上下文
diff -u old.txt new.txt

输出:

--- old.txt
+++ new.txt
@@ -1,4 +1,5 @@
 服务器IP: 192.168.1.10
 端口: 8080
-日志级别: info
-超时时间: 30
+日志级别: debug
+超时时间: 60
+启用缓存: true

这个格式好懂多了。- 开头的是删掉的行,+ 开头的是新增的行,没符号的是没变的上下文。@@ 行告诉你从哪行开始变了。这就是 git diff 那个格式,也是我日常用的最多的一种。

显示完全相同

# 两个文件相同,diff 就没有输出
diff old.txt old_copy.txt  # 啥也不输出

# 可以用 exit code 判断是否相同
diff old.txt new.txt
echo $?  # 0 相同,1 不同,2 出错

进阶骚操作

递归对比目录

# 对比两个目录里所有文件
diff -r config_backup/ config/

# 仅显示哪些文件不同,不看具体内容
diff -rq config_backup/ config/

-rq 是我最常用的快速对比方式,"快告诉我这两个目录有哪些文件不一样,别给我看内容"。

输出示例:

Files config/nginx.conf and config_backup/nginx.conf differ
Files config/app.yml and config_backup/app.yml differ
Only in config/: new_feature.conf

忽略空格和空行

# 忽略所有空白差异(行尾空格、缩进变化等)
diff -w old.txt new.txt

# 忽略空行
diff -B old.txt new.txt

# 忽略大小写
diff -i old.txt new.txt

有一次我把 YAML 缩进从2个空格改成了4个空格,diff 输出刷屏了。加了 -w 之后才看出来实际内容其实没变。

结合 patch 命令打补丁

diff 生成差异,patch 应用差异。这个组合在以前没有 git 的年代是标配:

# 生成补丁文件
diff -u old.txt new.txt > upgrade.patch

# 把补丁应用到原文件
patch old.txt < upgrade.patch

# 现在的 old.txt 就和 new.txt 一样了

# 撤销补丁(-R 表示反向应用)
patch -R old.txt < upgrade.patch

我现在偶尔也会用这个来给远程服务器发配置变更,本地改好,生成 patch,ssh 上去打补丁,不用传整个文件。

并排显示

# 并排对比,一目了然
diff -y old.txt new.txt

输出:

服务器IP: 192.168.1.10		服务器IP: 192.168.1.10
端口: 8080			端口: 8080
日志级别: info		      |	日志级别: debug
超时时间: 30		      |	超时时间: 60
				      >	启用缓存: true

| 表示对应行有变化,> 表示新增行。并排显示的缺点是当文件很长时终端显示不下,需要左右滚动。

控制在上下文中显示几行

# 默认的 -u 显示3行上下文
diff -u old.txt new.txt

# 显示5行上下文
diff -U 5 old.txt new.txt

上下文行数越多,越容易看出修改在文件中的位置。

避坑指南

坑1:diff 认为文件不同,但你肉眼看不出来

通常是因为不可见字符,比如行尾空格、tab vs 空格、换行符格式(Windows 的 CRLF vs Linux 的 LF):

# 先看不可见字符
cat -A file.txt
# ^I 表示 tab,$ 表示行尾

# 用 -w 忽略空白差异再比一次
diff -w file1.txt file2.txt

我之前有个同事说"我明明啥都没改,diff 怎么告诉我文件不一样",排查了半小时发现是他用 Windows 的记事本编辑过的文件,换行符从 LF 变成了 CRLF。

坑2:大文件对比直接卡死

diff 是逐行对比的算法,超大文件(几百 MB)直接 diff 会很慢甚至内存溢出:

# 先看大概的行数
wc -l bigfile.txt

# 用 head/tail 取一部分先比一下
head -1000 bigfile1.txt > tmp1.txt
head -1000 bigfile2.txt > tmp2.txt
diff -u tmp1.txt tmp2.txt

或者用 git diff --no-index,它对大文件处理更好一些:

git diff --no-index bigfile1.txt bigfile2.txt

坑3:二进制的文件不能用 diff

diff 默认会告诉你"Binary files differ",不会显示具体差异。看二进制差异用 xxd 转成 hex 再比,或者用专门的工具比如 Beyond Compare、Meld。

坑4:diff 的排列模式符号要理解

# 三种变化标记
# a = append(追加)
# c = change(修改)
# d = delete(删除)

# 示例
5a7    # 第5行之后追加第7行(从另一个文件)
3c3    # 第3行被修改
4d3    # 第4行被删除了

我在脚本里用 diff 做自动化检测的时候,经常用 grep -E '^[<>]' 来快速提取增删的内容。

实战场景(重点!结合真实运维场景)

场景1:上线前对比配置变更

上线前我一定会做的事:对比新配置和当前运行中的配置有什么不同:

# 备份当前配置
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.$(date +%Y%m%d)

# 部署新配置后对比差异
diff -u /etc/nginx/nginx.conf.20260622 /etc/nginx/nginx.conf

有一次迁移服务器,我把 upstream 配错了,就是靠 diff 发现少了个服务器 IP。要是直接 reload 上去,502 就来了。

场景2:检查日志中是否出现新错误

# 对比今天的错误日志和昨天的,找出新增的错误
grep ERROR app.log.2026-06-21 | sort > errors_yesterday.txt
grep ERROR app.log.2026-06-22 | sort > errors_today.txt
diff -u errors_yesterday.txt errors_today.txt | grep '^+' | grep -v '^+++'

这个脚本帮我逮到过一次上线后的隐藏 bug,昨天没有的错误今天出现了,一查发现是新发布的代码抛出来的。

场景3:验证备份脚本是否完整

备份完成后,对比备份前后关键目录的文件差异:

# 备份前记录文件列表
find /data -type f | sort > filelist_before.txt

# 备份后重新记录
find /data -type f | sort > filelist_after.txt

# 对比差异
diff filelist_before.txt filelist_after.txt

如果备份过程应该只读不写,diff 显示有差异说明有程序在备份期间写入了文件。

场景4:对比两个版本的代码

虽然现在都用 git 了,但有些场合 git 不在手边(比如生产环境只有最基本的工具):

# 对比同一个文件的两个版本
diff -u /opt/app-v1.0/config/application.yml /opt/app-v2.0/config/application.yml
# 对比目录递归
diff -rq /opt/app-v1.0/config/ /opt/app-v2.0/config/

场景5:用 vimdiff 做可视化对比

# 在终端里可视化对比,左右分屏
vimdiff old.txt new.txt

# 或者
vim -d old.txt new.txt

vimdiff 里:
- ]c 跳到下一个差异
- [c 跳到上一个差异
- do(diff obtain)把对方的差异拉过来
- dp(diff put)把自己的差异推给对方
- :qa 退出

我个人很喜欢 vimdiff,改完代码看差异的时候比看 diff 输出直观得多。

今日作业

准备好下面两个配置文件:

# 文件A(config_v1.ini)
[database]
host=localhost
port=3306
user=root
password=123456

[redis]
host=localhost
port=6379
# 文件B(config_v2.ini)
[database]
host=10.0.0.1
port=3306
user=admin
password=P@ssw0rd

[redis]
host=10.0.0.1
port=6379
db=0

请完成:
1. 用 diff -u 对比两个文件,分析修改了哪些配置
2. 生成一个 patch 文件,然后用 patch 命令把 A 文件更新成 B 文件的内容
3. 用 vimdiff(如果有 vim)或 diff -y 查看并排对比

E N D

运维少年 · 科技观察

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-05 21:25:30 HTTP/2.0 GET : https://f.mffb.com.cn/a/503551.html
  2. 运行时间 : 0.213392s [ 吞吐率:4.69req/s ] 内存消耗:4,645.60kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=588e07c24cebf6de1faf7f126e55d8a5
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001079s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001556s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000701s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000620s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001380s ]
  6. SELECT * FROM `set` [ RunTime:0.000520s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001488s ]
  8. SELECT * FROM `article` WHERE `id` = 503551 LIMIT 1 [ RunTime:0.003287s ]
  9. UPDATE `article` SET `lasttime` = 1783257930 WHERE `id` = 503551 [ RunTime:0.024764s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000925s ]
  11. SELECT * FROM `article` WHERE `id` < 503551 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001220s ]
  12. SELECT * FROM `article` WHERE `id` > 503551 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002449s ]
  13. SELECT * FROM `article` WHERE `id` < 503551 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001741s ]
  14. SELECT * FROM `article` WHERE `id` < 503551 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002801s ]
  15. SELECT * FROM `article` WHERE `id` < 503551 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002204s ]
0.217251s