当前位置:首页>Linux>Linux硬链接、软链接与桌面快捷方式区别:ln、ls、readlink、rm实战详解

Linux硬链接、软链接与桌面快捷方式区别:ln、ls、readlink、rm实战详解

  • 2026-08-18 23:12:05
Linux硬链接、软链接与桌面快捷方式区别:ln、ls、readlink、rm实战详解

硬链接、软链接、桌面快捷方式——这三个名字听着都是"指向别处的东西",这三者的底层逻辑完全不同,出问题的方式也完全不同。

这篇文章就把这三者的原理差异、适用场景,以及 lnlsreadlinkrm 几个命令的实战用法,逐一讲清楚。

硬链接:两个身份证,同一个人

Linux 文件系统里,可以把一个文件理解成两个关键部分:文件名和 inode。

文件名负责“叫什么”,inode 则记录这个文件的类型、权限、大小、时间戳、链接计数以及数据存储位置等元数据。真正的文件内容,则存放在数据块中。

硬链接干的事情,就是再贴一张标签上去。file_a.txt 和 file_b.txt 可以是两个完全不同的名字,却指向同一个inode——就像一个人办了两张身份证,证件号不同,但对应的还是同一个人。你改 file_a.txt 的内容,file_b.txt 打开看到的也会跟着变,因为它们读写的根本是同一份数据。

删除呢?这里最容易想错。rm file_a.txt 之后,file_b.txt 完好无损,数据不会丢,因为inode有一个"链接计数",只有当所有指向它的文件名都被删除、计数归零,磁盘空间才会真正释放。

软链接:一张写着地址的路标

软链接(也叫符号链接)是另一套逻辑。它自己是一个独立的文件,有自己的inode,但内容不是数据,而是一段路径字符串——“目标文件在哪儿”。

正因为软链接存的只是路径,它可以指向目录,可以跨越不同的磁盘分区,甚至可以指向一个根本不存在的路径(这时候就成了"悬空链接",打开会报错"没有那个文件或目录")。原文件一旦被删除或改名,软链接立刻失效,因为路标指的那个地方已经空了。

这也是两者最本质的区别:硬链接绑定的是 inode;软链接保存的是目标路径。所以,只要目标路径仍然能够解析到目标对象,软链接就能正常工作;一旦目标路径发生变化并导致无法找到目标,软链接就会变成“悬空链接”。

桌面快捷方式:它压根不是"链接"

到了麒麟、统信这类图形化桌面系统,还有第三个容易和软链接搞混的角色——桌面快捷方式。很多人凭直觉以为它也是某种链接,其实完全不是一回事。

Linux桌面的快捷方式对应的是一种叫"Desktop Entry"的文本文件,后缀名是.desktop,作用和Windows里的.lnk快捷方式类似,但实现原理天差地别。它不是文件系统层面的东西,内核根本不认识它,纯粹是桌面环境(比如麒麟的UKUI)读出来用的一份"启动说明书"。打开一个.desktop文件,看到的是这样的文本:

[Desktop Entry]Type=ApplicationName=My TestExec=/opt/Test/TestIcon=/opt/Test/Test.pngComment=This is my testTerminal=false

双击桌面图标时,桌面环境读取这份文件,找到Exec字段里写的那条命令,把程序拉起来——这个过程和"打开一个软链接、内核自动跳转到目标文件"完全是两码事。软链接的跳转发生在文件系统层,任何程序(包括catvim)打开它都会被内核自动重定向到目标;.desktop文件的"跳转"发生在应用层,只有桌面环境自己认识Exec这个字段,用cat打开它,看到的就是一段纯文本,不会有任何跳转效果。

三者的关系,用一张图看得更清楚:

硬链接、软链接、桌面快捷方式对比

也正因为原理不同,"删除"这件事的后果也不一样:

  • • 删软链接:只删掉那个"路标",原文件毫发无损
  • • 删.desktop文件:只是删掉了这份启动说明书,被它指向的程序本体(Exec路径下的可执行文件)根本不受影响,但下次想通过图标打开就找不到了,得重新创建
  • • 桌面上看到的图标不见了,不代表软件被卸载了——这是很多人对着桌面图标点右键"删除"之后,以为软件被清干净了,结果占用空间纹丝不动的原因

再来看一张更完整的硬链接与软链接原理图,配合命令一起理解会更直观:

硬链接与软链接对比

什么时候用软链接,什么时候用硬链接

判断标准其实就三条,按优先级来:

先看能不能跨分区? 硬链接不能跨文件系统/分区,跨了直接报 invalid cross-device link 错误。只要源和目标不在同一个分区(比如系统盘和挂载的数据盘),就没得选,只能用软链接。

再看目标是文件还是目录? 硬链接不支持链接目录(mkdir 相关的目录结构由内核维护,允许硬链接目录会破坏文件系统树的完整性,所以从设计上就禁止了)。想给目录建链接,只能用软链接。这就是为什么"切换版本目录"(/opt/app-current -> /opt/app-v2.1)这种场景天然是软链接的地盘。

都满足的情况下,再看你要的是什么语义:

实际工作中软链接用得远比硬链接多,因为它限制少、灵活、出问题时(悬空链接)也容易发现和修复。硬链接主要活跃在增量备份系统(省空间)、以及一些要求"必须同分区、必须是同一份inode"的底层工具里,日常运维配置管理基本用不上它。

场景一:软件多版本无缝切换

部署Java、Python等应用时,把 /usr/local/app-current 做成一个指向具体版本目录(比如 /usr/local/app-v2.1)的软链接。升级新版本时,先把新版本包解压到 /usr/local/app-v2.2,验证没问题后执行:

ln -sfn /usr/local/app-v2.2 /usr/local/app-current

应用配置里读取的路径始终是 app-current,完全不用改,一条命令就完成"切换"。万一新版本出问题,把 -f 命令里的版本号改回旧的重新执行一次,秒级回滚,比直接覆盖目录安全得多。

场景二:多环境配置文件切换

测试、预发、生产三套配置文件(config-test.yamlconfig-staging.yamlconfig-prod.yaml)放在同一目录下,应用统一读取 config.yaml

# 切到生产环境配置ln -sf config-prod.yaml config.yaml

切环境只需要重新执行一次 ln -sf,不用改代码里读取配置的路径,也不用来回复制粘贴文件内容,避免手滑改错生产配置。

场景三:省空间的快照式备份

对差异不大的大文件做增量备份时,cp -al 或者 rsync --link-dest 会对没有变化的文件建硬链接,而不是重新拷贝一份完整数据:

rsync -a --link-dest=/backup/2026-08-12 /data/ /backup/2026-08-13/

看起来每次备份都是一个完整目录,实际磁盘只多存了变化的那一小部分——这也是很多备份工具(如macOS Time Machine的思路)实现"秒级快照"的关键技巧。用 du -sh 看会发现总占用远比"文件数量 × 单份大小"要小得多。

场景四:日志文件平滑迁移到新磁盘

日志目录 /var/log/myapp 所在分区快满了,想把它挪到新挂载的大容量磁盘,又不想改应用里写死的日志路径:

# 先把旧数据搬过去mv /var/log/myapp /data/logs/myapp# 原路径建软链接指回去ln -s /data/logs/myapp /var/log/myapp

要特别注意:硬链接没法跨分区共享数据,如果新旧目录在不同分区,只能用软链接这条路,硬链接在这种场景下会直接报错。另外迁移前记得确认应用是否是"打开文件后长期持有文件描述符"(比如日志框架),有些情况下需要重启应用或者发送信号让它重新打开日志文件。

场景五:给命令行工具建"短命令"

服务器上装的工具全名很长,比如 /opt/tools/data-sync-cli-v3/bin/sync,每次敲命令都很痛苦,可以在 /usr/local/bin 下建一个软链接:

sudoln -s /opt/tools/data-sync-cli-v3/bin/sync /usr/local/bin/sync

这样直接敲 sync 命令即可(注意别和系统自带的 sync 命令重名,建议先用 which sync 检查一下)。这个场景不适合用硬链接,因为工具版本升级后目录名会变,用软链接可以只改一次指向,硬链接则需要在新目录里重新建一份链接。

程序是否总能正确识别软链接和硬链接

硬链接:几乎不存在识别问题。 因为它在内核眼里就是一个普通文件——没有任何特殊标记,权限位显示 -rw-r--r--,跟"真的"那份文件毫无区别。任何程序打开它,读写的就是inode本体的数据,不需要程序做任何特殊处理。唯一"看得出"是硬链接的途径是主动查链接计数(ls -l 第二列)或对比inode号(ls -li),程序如果没写代码去查,根本感知不到自己打开的文件是不是被多个名字共享。

软链接:分两种情况,不是所有场景都能"正常识别"。

大多数命令行工具默认会自动跟随软链接(内核在 open() 系统调用层面就把跳转做掉了),比如 catvim、大多数编程语言的文件读写API,打开一个软链接和打开目标文件效果一样,程序完全无感。

但有几类情况会出问题,值得留意:

  • • rm / unlink 不跟随:这是有意设计的,rm 删软链接删的是链接本身,不会动目标文件。但如果目标是目录,用错误的方式清理(比如带斜杠的 rm -rf link_dir/)可能引发误删,前面提到过。
  • • 静态链接检测、部分安全工具:有些程序会用 lstat() 而不是 stat(),特意不跟随软链接(比如检测符号链接是不是被恶意利用做权限提升的攻击手法,这是安全工具常规检查项)。这种情况下程序"看到"的就是链接本身而不是目标。
  • • 权限判断:软链接本身的权限位其实没有实际意义(永远显示 lrwxrwxrwx),真正生效的是目标文件的权限。如果目标文件的权限比链接本身"严格",程序照样会被拒绝访问——这经常让人误以为"链接权限设置有问题"。
  • • 悬空链接:目标被删除或改名后,stat() 类调用会直接返回"文件不存在"错误。程序如果没有针对这种情况做容错处理(比如启动脚本里 source 一个已经悬空的配置链接),会直接报错甚至崩溃,而错误信息往往指向的是链接路径,容易让人以为是链接文件本身坏了,其实是目标丢了。
  • • 权限继承的容器/chroot环境:如果软链接指向的路径在容器或chroot的挂进来的目录之外,程序完全找不到目标,这是容器化部署里踩链接坑最常见的场景之一。

总之,硬链接对程序来说"零感知、零风险";软链接对大多数程序也是透明的,但涉及安全检查、rm类操作、跨挂载点/容器边界访问时,需要留意程序到底是"跟随"还是"不跟随"这个链接。

常用命令实战

ln:创建链接

# 创建硬链接ln source.txt hardlink.txt# 创建软链接,一定要带 -sln -s source.txt softlink.txt# 给目录建软链接(硬链接不支持对目录操作)ln -s /data/logs /var/log/myapp# 强制覆盖已存在的同名链接,常用于"重新指向"场景ln -sfn /opt/app-v2.1 /opt/app-current

三个容易踩的坑:

  1. 1. ln -s 后面的路径最好写绝对路径,或者想清楚相对路径是相对谁而言的。很多人在A目录里执行 ln -s ../config.yaml link.yaml,链接建好了,可一旦把整个目录挪个位置,链接立马失效,排查起来一头雾水。
  2. 2. 更新已有软链接的指向时,一定要加 -f(force)参数,否则会报错"已存在文件"。如果链接指向的是目录,再加上 -n(no-dereference),防止 ln 误判成"要在目标目录里面创建链接"。
  3. 3. 硬链接不能跨文件系统创建,执行时会直接报错 invalid cross-device link;软链接没有这个限制,可以随意跨分区、甚至跨挂载的网络存储。

ls -l / ls -li:一眼看穿链接的真相

ls -l

看输出的第一列和链接数这两处:

  • • 软链接的权限位以 l 开头,后面还会用 -> 箭头标出指向的目标,比如 lrwxrwxrwx 1 root root 11 Aug 10 10:00 softlink.txt -> source.txt
  • • 硬链接看起来和普通文件一模一样,权限位是正常的 -rw-r--r--,唯一的线索藏在文件名和权限之间那一列数字——链接计数。一个文件如果显示"2",说明至少有两个文件名共享着同一个inode
  • • .desktop 快捷方式在 ls -l 里就是个普通文件,权限位可能是 -rw-r--r-- 也可能带执行权限 -rwxr-xr-x(取决于是否勾选了"允许作为程序执行"),完全看不出"链接"的痕迹,因为它本质上就不是链接

想直接看inode编号,加个 -i

ls -li

编号相同的两行,就是同一份数据的两个"马甲"。这个命令在排查"某个大文件到底占了几份磁盘空间"时非常实用——如果好几个文件名的inode编号一样,说明它们其实是共享数据,别被文件数量吓到。

readlink:追问链接到底指向哪

ls -l 能看到箭头,但如果链接套链接、或者用的是相对路径,肉眼判断容易出错。这时候交给 readlink

# 查看直接指向readlink softlink.txt# 递归解析,一路查到最终的真实文件(常用)readlink -f softlink.txt# 判断一个路径是不是软链接(脚本里常用的写法)if [ -L "$path" ]; thenecho"是软链接"fi

-f 参数在排查"这个配置文件到底读的是哪个环境"时特别好用,尤其是链接嵌套了好几层的情况下,能省掉大量人工追踪的功夫。注意 readlink 只对软链接有效,对硬链接和普通文件执行会没有输出(因为硬链接没有"指向"这个概念,它自己就是数据本体的一个名字)。

rm:删除链接时该注意什么

rm softlink.txt   # 只删除链接本身,源文件安然无恙rm hardlink.txt   # 链接计数减1,只要还有其他文件名指向该inode,数据不受影响rm ~/Desktop/App.desktop   # 只删除快捷方式文件,程序本体不受影响

需要提醒的是,rm -rf 加在软链接指向的目录上要格外小心:如果命令末尾多带了一个斜杠(比如 rm -rf softlink_dir/),有些系统行为下会顺着链接把目标目录里的内容一并清空,而不是仅仅删除链接本身。生产环境操作前,先用 ls -l 或 file 命令确认清楚这到底是个链接还是原始目录,是个好习惯。

硬链接、软链接、桌面快捷方式,说到底是三层不同的"指向"逻辑:硬链接死死绑住数据本身,软链接只记一个路径,桌面快捷方式则更进一步,连接的其实是"如何启动一个程序"这件事,压根不在文件系统层面打转。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 13:34:24 HTTP/2.0 GET : https://f.mffb.com.cn/a/510260.html
  2. 运行时间 : 0.289980s [ 吞吐率:3.45req/s ] 内存消耗:4,666.56kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=33be7d970265e6e2dc888405836e58d3
  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.000772s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000721s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.044681s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.012369s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000745s ]
  6. SELECT * FROM `set` [ RunTime:0.004083s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000597s ]
  8. SELECT * FROM `article` WHERE `id` = 510260 LIMIT 1 [ RunTime:0.010123s ]
  9. UPDATE `article` SET `lasttime` = 1787290464 WHERE `id` = 510260 [ RunTime:0.015157s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.001026s ]
  11. SELECT * FROM `article` WHERE `id` < 510260 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.025865s ]
  12. SELECT * FROM `article` WHERE `id` > 510260 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002874s ]
  13. SELECT * FROM `article` WHERE `id` < 510260 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001516s ]
  14. SELECT * FROM `article` WHERE `id` < 510260 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002122s ]
  15. SELECT * FROM `article` WHERE `id` < 510260 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004814s ]
0.292420s