Linux chown 命令详解:修改文件所有者的正确姿势
修改文件所有者在 Linux 运维里几乎是每天都会碰到的操作。新同事接手旧项目、Web 服务读不了网站目录、从别人机器上拷过来的压缩包解压后属主一片混乱翻来覆去最后都会落到同一个命令上——chown。这个命令看着简单实际用起来有不少细节值得掰扯尤其是递归、软链接、批量处理这些场景稍不留神就会把整个目录的属主改乱。这篇内容就围绕“Linux 修改文件所有者”这件事从权限模型讲起把chown的常见用法、实操场景、踩坑记录一次性说透适合刚接触 Linux 的初学者也适合给写脚本时想避开坑的运维老手做个参考。1. 为什么需要修改文件所有者先搞清楚应用场景1.1 从权限模型说起Linux 里的每个文件都带有一组属性除了权限位读、写、执行之外还有两个非常重要的身份标记属主owner和属组group)。属主就是这个文件的主人属组则是文件所属的用户组。系统判断“你能不能操作这个文件”看的就是你的用户身份跟文件的属主、属组是否匹配以及对应的权限位是什么。可以把这个机制想象成一套门禁系统文件是一间屋子属主是这间屋子的登记业主属组是物业登记的家庭成员名单权限位则是门锁的类型——业主能用钥匙开家庭成员用备用钥匙开其他访客只能等有人开门才能进去。Linux 的权限模型跟这个非常像改变的只是“业主”或“家庭成员名单”门锁规则并不会变所以chown和chmod是两个维度的操作一个改身份归属一个改访问规则。1.2 哪些场景下必须动所有者单纯背命令很容易难的是判断“什么时候需要改所有者”。我整理了几个实际工作中经常遇到的场景人员交接某个员工离职或调岗他留下的项目目录还在/home/olduser/project下新员工要接手。如果不改属主新员工连目录都进不去更别提读代码了。服务运行身份不匹配网站目录属主是root但 Nginx 或 PHP-FPM 进程是以www-data身份运行的。进程要读文件权限不足就会报 403 或 500这时候要么改权限位要么改属主更规范的做法是改成服务专用用户。挂载盘或拷贝文件从移动硬盘、Windows 分区或者另一台服务器拷贝过来的文件属主常常是root或者是数字 UID比如 1000在目标机器上没有对应的用户看起来就像“无主文件”必须手动调整归属。软件安装后的数据目录用源码编译安装某些软件时会创建独立用户但软件的数据目录却留在了root名下运行时会因为写不进去而报错这时候也需要统一修改所有者。理解了背后的需求再去看命令就会通透很多——你不是在背参数而是在解决“这个文件到底该归谁管”的问题。2. 查看当前文件所有者ls -l 是第一步2.1 ls -l 输出里每一列的含义动手改之前先得知道文件现在的属主是谁。最常用的就是ls -l输出的一行信息长这样$ ls -l /var/www/html/index.html -rw-r--r-- 1 root root 1024 Mar 15 10:30 index.html这一行里面第一段-rw-r--r--是权限位后面的1是硬链接数接着的root root就是重头戏——前一个root表示文件的属主后一个root表示文件的属组再往后是文件大小、修改时间和文件名。如果看到属主和属组是你预期中的用户那就没必要动如果发现属主是root或者是一串看不懂的数字说明这个文件的所有者需要修改了。养成先ls -l看一眼再动手的习惯能避免很多误操作。2.2 几个顺手好用的查看命令除了ls -l还有几个命令适合不同场景ls -n以数字形式显示属主和属组的 UID/GID当系统里没有对应用户名时会很有用。stat file显示更详细的文件信息包括属主 UID、属组 GID、权限位、时间戳等。namei -l /path/to/file一路拆解路径中每个目录的权限和归属排查“为什么进不去目录”时非常好使。getent passwd 用户名确认某个用户名在系统里是否存在改属主之前先确认用户存在能减少报错。比如要查一个文件的数字 UID$ stat -c %U %u %G %g /etc/hostname root 0 root 0这个输出告诉你属主名是rootUID 是 0属组名是rootGID 是 0。四个信息一次拿全排查问题时比ls -l更直白。2.3 用户名和数字 UID 的关系Linux 系统里文件名不会记录属主的“名字”只记录数字 UID 和 GID。你在ls -l里看到的root、www-data是系统根据/etc/passwd文件中的映射关系“翻译”出来的。如果哪一天系统里没有对应 UID 的用户ls -l就会直接显示这个数字而不是一个名字。这解释了为什么从另一台机器拷贝文件过来后属主会变成一堆莫名其妙的数字——因为源机器上的 UID 在目标机器上没有对应记录。所以修改所有者的本质就是把这个数字 UID 改成目标机器上的某个用户。理解这一层以后遇到“属主显示为数字”的情况就不会慌要么在那个机器上创建对应 UID 的用户要么用chown把它改成现有用户。3. chown 命令的完整语法与参数拆解3.1 基本语法与参数速查chown的全称是 change owner命令格式如下chown [选项] 用户名[:组名] 文件或目录 chown [选项] :组名 文件或目录 chown [选项] --reference参考文件 目标文件常用参数可以整理成一张速查表参数作用典型场景-R递归修改目录及其内部所有文件和子目录批量调整整个项目目录-h修改符号链接本身的属主而非链接指向的目标文件需要调整软链接归属时-v显示执行过程输出每一条变更信息确认操作是否生效-c只在发生变更时输出信息类似-v的精简版脚本里查看哪些文件被改过--reference文件把目标文件的属主/属组改成与某个参考文件一致批量对齐属主-f忽略不存在的文件不显示错误信息脚本批量处理时避免噪音3.2 只修改所有者的写法最简单的用法只改属主、不动属组sudo chown zhangsan /data/app/config.ini执行后config.ini的属主会变成zhangsan属组保持不变。这条命令在把某个具体文件“交给”某个用户时很常用。如果你当前用户不是 root也没有目标文件的管理权限命令前面要加sudo否则会报Operation not permitted。还有一点需要注意普通用户不能把自己的文件用chown改给别的用户即使这个文件确实是他的。这是 Linux 的一个安全设计防止用户通过“送文件”的方式把自己无法操作的文件转移给别人从而绕开权限控制。所以绝大多数chown操作都得依靠 root 权限完成。3.3 同时修改所有者与用户组如果属主和属组要一起改用冒号把用户和组连起来sudo chown zhangsan:developers /data/app/config.ini这样属主变成zhangsan属组变成developers一次到位。冒号后面也可以留空比如chown zhangsan:表示只改属主属组保持不变反过来chown :developers表示只改属组、不动属主。老版本的 Linux 支持用点号分隔比如chown zhangsan.developers但新版本里不建议这么写因为 Linux 用户名本身可以包含点号点号写法容易产生歧义。统一用冒号是更稳妥的做法。另外也可以直接用数字 UID 和 GIDsudo chown 1001:1001 /data/app/config.ini数字方式在批量处理脚本里更可靠因为脚本没法保证目标系统里一定存在某个用户名但 UID 是确定的。3.4 递归修改-R 参数的真实用法处理目录时只改目录本身往往不够里面的文件和子目录也得跟着改。这时候用-Rsudo chown -R zhangsan:developers /data/app-R会让命令遍历/data/app下的所有子目录和文件把它们的属主和属组全部改成zhangsan:developers。这个操作非常高效但也是“误操作重灾区”。比如你原本只想改某个目录下的配置文件结果手滑写成sudo chown -R zhangsan /etc那整个/etc目录下的所有文件属主都会变成zhangsan系统的正常运行立刻就会被影响。所以用-R之前务必确认路径准确无误。还有一个细节值得单独说chown -R默认会“跟随”符号链接也就是说如果目录里有软链接指向另一个位置这个软链接指向的目标文件也会被改掉而不是软链接本身。这在某些场景下不是你想要的结果。3.5 符号链接的处理-h 参数符号链接软链接本身也是一个文件只是它的内容指向另一个文件。默认情况下chown操作会作用于软链接指向的那个目标文件而不是软链接本身。如果你就是想改软链接自己的属主需要加-hsudo chown -h zhangsan /usr/local/bin/myapp-link在做系统维护时这个细节很容易被忽略。比如你用chown -R zhangsan /data而/data下面有一个软链接指向/var/backup那/var/backup的所有文件也会被顺带改掉属主。这个“隔山打牛”的效果非常隐蔽排查问题的时候会让人摸不着头脑。3.6 --reference 参考模式如果你有一堆文件希望它们的属主和属组跟某个“样板文件”一模一样不用逐个写用户名而是用--reference指定参考文件sudo chown --reference/data/template.txt /data/file1.txt /data/file2.txt这个参数在批量部署环境里很实用。比如所有配置文件都应该跟template.conf保持相同的属主和属组那直接用这一条命令就能对齐既省去输入用户名的麻烦也避免了用户名输错的问题。4. 从单文件到批量任务的完整实操4.1 场景一项目目录换人接手我处理过一个典型的交接场景老员工zhangsan离职他的项目目录/home/zhangsan/project需要交给lisi。直接拷贝目录会带来权限和时间戳问题更规范的做法是保留原目录只改属主# 1. 确认 lisi 用户存在 getent passwd lisi # 2. 递归修改属主和属组 sudo chown -R lisi:lisi /home/zhangsan/project # 3. 验证 ls -ld /home/zhangsan/project这里有一个小坑/home/zhangsan这个父目录的属主仍然是zhangsanlisi可能因此进不去/home/zhangsan。所以还要把父目录的权限也调整一下至少让lisi能进入sudo chmod ox /home/zhangsan或者干脆把整个父目录的属主也改掉sudo chown -R lisi:lisi /home/zhangsan这种场景下改完文件归属之后一定要确认“从家目录一路走上去的每一层目录都有执行权限”否则文件属主对了用户还是进不去。4.2 场景二批量修改多个文件如果只是需要修改一批具体文件而不是整个目录可以在一条命令里列出多个文件sudo chown nginx:nginx /etc/nginx/nginx.conf /etc/nginx/conf.d/*.conf通配符在这里很常用但要注意通配符的展开是由 shell 完成的如果路径下没有匹配的文件shell 会把原样字符串传给chown导致报错。可以用ls先看一眼目录里的实际文件避免这类低级错误。批量操作之后想确认结果用-c参数输出变更记录sudo chown -c lisi:lisi /home/zhangsan/project/*这样只会列出真正发生变化的文件再配合wc -l还能统计变更数量写脚本时很实用。4.3 场景三find 组合处理海量文件当文件数量多到不适合用通配符或者需要按一定条件筛选时find和chown组合是最稳妥的方案。例如把/data/logs下所有.log文件改成loguser所有sudo find /data/logs -type f -name *.log -exec chown loguser:loguser {} \;要把目录本身也改掉就再执行一次只针对目录的查找sudo find /data/logs -type d -exec chown loguser:loguser {} \;分开处理文件和目录是刻意为之。某些场景下文件和目录需要不同的属主比如目录归管理员文件归普通用户这时候分开执行反而更灵活。-exec ... {} \;的写法中{}会被替换成每一个匹配的文件路径结尾的;表示一条命令的结束在 shell 里需要转义成\;。如果文件量特别大用xargs方式可以减少进程数量提升执行速度sudo find /data/logs -type f -name *.log -print0 | xargs -0 chown loguser:loguser-print0配合xargs -0是为了处理文件名中包含空格或特殊字符的情况推荐直接套用这个组合别省这两个参数。4.4 场景四解包后属主错乱的修复从别人那里收到一个 tar 包解压后文件属主变成了一堆不认识的数字这种情况我遇到过很多次。tar 包会保留源机器的 UID/GID但这些 UID 在当前机器上未必有对应的用户。修复思路很简单把解压出来的目录统一改成当前机器上的目标用户比如把整个解压目录交给appusersudo tar -xzf project.tar.gz sudo chown -R appuser:appuser /opt/project如果只想把“确实属于某个人”的文件改掉用find按 UID 筛比如把所有 UID 为 1000 的文件改成appusersudo find /opt/project -uid 1000 -exec chown appuser:appuser {} \;这种方式比直接-R更优雅因为你只修正“有问题的部分”不会把原本属主正确的文件也改掉。5. 常见错误、权限边界与排查技巧实录5.1 Operation not permitted 是怎么回事执行chown时如果出现chown: changing ownership of file.txt: Operation not permitted原因是当前用户权限不够。修改文件的所有者不是普通用户的权限范畴普通用户不能把自己的文件“送”给别人也不能把别人的文件据为己有。解决方法是使用sudo或切换到 root 用户执行。如果加了sudo仍然报同样的错可以往这几个方向排查文件系统是否挂载为只读用mount | grep 挂载点确认一下。是否启用了 SELinux 或类似强制访问控制机制ls -Z查看文件的 SELinux 上下文必要时调整策略。文件是否位于某些特殊文件系统如 NFS、FUSE上这些文件系统可能禁止通过chown修改属主。5.2 invalid user用户不存在怎么处理执行chown someuser:somegroup file时报invalid user: someuser说明系统里没有这个用户。可以先确认用户是否存在getent passwd someuser如果确实不存在有两种处理思路创建用户sudo useradd someuser然后再执行chown。改用数字 UIDsudo chown 1001:1001 file前提是你清楚 1001 这个 UID 对应的是目标用户。这里提醒一句改属主之前先养成分三步走的习惯——getent passwd 目标用户、getent group 目标组、id 目标用户三个命令确认完再动手能避免八成以上的误操作。5.3 递归操作把软链接“顺手牵羊”改掉了递归修改目录属主时软链接是个隐患。前面提到过chown -R默认会跟随软链接把链接指向的目标也改掉。结果就是你只想改/data下的文件结果/var/backup里的文件属主全变了。排查这类问题时先用find /data -type l -ls看看目录里有哪些软链接它们指向哪里再决定是否要额外处理。如果希望-R不要跟随软链接不同发行版处理方式略有差异GNU 版本的chown可以用-P参数不跟随符号链接或者使用--no-dereference等同于-h的批处理版。稳妥起见可以在递归之后单独用-h把软链接的属主修正回来sudo chown -R appuser:appuser /data sudo find /data -type l -exec chown -h appuser:appuser {} \;5.4 特殊权限位与所有者变更的相互作用Linux 文件中还有三个特殊权限位setuid、setgid、sticky bit。修改属主本身并不会清除这些特殊权限位但会影响它们的含义尤其值得一提。比如一个可执行文件带着 setuid 位权限位中出现s任何用户执行它时会临时拥有该文件属主的身份。如果你把属主从root改成普通用户那么普通用户执行它时就不再有 root 权限程序的功能可能发生改变。在改属主之前可以先用stat -c %A %a file看一眼权限位的完整信息。如果发现权限位中有s或者t就要思考一下这次修改是否会影响特殊权限位的效果。还有一种情况某些系统服务比如 cron会忽略设置了 setuid/setgid 位的文件如果服务突然不工作了可以检查一下是不是属主变化连带影响了这些位。5.5 几个容易忽略的细节冒号与点号新写法要统一用冒号user:group不要再用点号user.group避免用户名包含点号时产生歧义。用户组名和用户名相同如果用户名和组名恰巧重名chown user:user file中冒号前的被视为用户冒号后的被视为组不会混乱。但如果只写chown user file则只改用户不改组。隐藏文件chown -R user /dir里的-R会处理隐藏文件但使用通配符如/dir/*时不会匹配隐藏文件需要显式加上/dir/.*不过也要注意.和..会被匹配进来容易引发误操作不推荐这种做法。chown 与 chmod 的区别chown管的是“归谁所有”chmod管的是“谁能用什么方式访问”两者互相不替代。设置权限位时常用chmod但先把属主理顺权限位才谈得上意义。6. 实操心得与收尾建议6.1 别让 root 成为文件的实际所有者从我经手的故障案例来看不少权限问题都是“文件全归 root”惹出来的。安装软件时默认用 root 操作一路下来文件全留给了 root后面用普通用户跑服务各种访问不了的怪问题就来了。处理原则很简单运行什么身份的应用就让那个应用的用户成为文件属主。比如 Nginx 以nginx或www-data身份运行网站目录就交给它PostgreSQL 以postgres身份运行数据目录就归postgres。这样改完之后就不需要把权限位放开到777用最小权限就能让服务正常工作。6.2 写自动化脚本时的注意点写脚本批量执行chown时要注意几个细节否则很容易在无人值守时出问题脚本里用-c参数输出变更记录方便事后审计。用户和组名用变量统一管理避免在多个地方硬编码导致不一致。在执行前先打印将要执行的命令比如用echo sudo chown -R $OWNER $TARGET确认无误再真正执行。如果脚本面向多台机器尽量用 UID/GID 而不是用户名因为不同机器上用户名对应的 UID 可能不同用数字化方式可以保证行为一致。递归操作前先对目标路径做一次校验比如确认路径存在且不是根目录避免路径变量为空时执行出灾难性的操作。6.3 让手速翻倍的小技巧最后分享一个实际工作中的小技巧想把当前目录及以下所有文件全部改成当前登录用户可以用一条命令sudo chown -R $(id -u):$(id -g) .$(id -u)和$(id -g)会动态取当前用户的 UID 和 GID省去手动输入用户名的步骤也避免打错字。这条命令在初始化一个工作目录、或者从别的环境拷贝文件后快速“认领”文件时非常好用。我自己的习惯是凡是涉及chown -R的操作执行完之后一定立刻用ls -l或者find抽查几个文件确认结果。历史经验告诉我属主修改出错往往不是命令本身的问题而是没搞清楚目录结构、忘了软链接、或者漏看了父目录权限。多看一眼比事后排查一整天要划算得多。修改文件所有者在 Linux 系统管理里属于高频操作但它的影响范围往往比表面上看到的更大。理解了权限模型、掌握了chown的参数细节、知道哪些场景需要动属主、哪些坑不能踩这套操作就算真正拿下了。你在实际操作中还遇到过什么奇怪的现象也欢迎对照这篇文章多试几次大概就能找到原因了。

相关新闻

Linux进程等待:如何正确回收僵尸子进程(wait/waitpid详解)

Linux进程等待:如何正确回收僵尸子进程(wait/waitpid详解)

运维或者 C/C 服务端开发的朋友&#xff0c;应该都见过这种场景&#xff1a;ps -ef一列下来&#xff0c;进程状态是Z&#xff0c;命令行括号里写着<defunct>。Z就是 zombie&#xff0c;僵尸进程。为什么会有这么多僵尸&#xff1f;因为子进程死了&#xff0c;父进程没有及…

2026/10/9 6:07:02 阅读更多 →
Kubernetes 1.13.3 电商微服务离线部署与 TLS 证书链实战

Kubernetes 1.13.3 电商微服务离线部署与 TLS 证书链实战

简介&#xff1a;本资源是一套面向运维工程师与云原生初学者的Kubernetes实战教学包&#xff0c;聚焦电商微服务在k8s 1.13.3版本上的完整部署落地&#xff0c;解决企业级容器编排环境中服务治理、镜像管理、Ingress流量控制等典型问题。压缩包共6个文件&#xff0c;含3个.gz/t…

2026/10/9 6:07:02 阅读更多 →
Visual C++ 手搓本地搜索引擎:倒排索引、分词与 TF-IDF 排序实战

Visual C++ 手搓本地搜索引擎:倒排索引、分词与 TF-IDF 排序实战

简介&#xff1a;这份资源是面向C初学者与游戏AI爱好者的Surakarta人机博弈项目源码包&#xff0c;基于Visual C开发&#xff0c;核心围绕alpha-beta搜索算法与简单估值函数展开&#xff0c;适合想理解博弈搜索、搜索引擎式状态空间遍历及面向对象编程的读者练手。压缩包共8个文…

2026/10/9 6:06:02 阅读更多 →

最新新闻

Agent-Reach:LLM API智能路由与成本可控调度中枢

Agent-Reach:LLM API智能路由与成本可控调度中枢

1. 项目概述&#xff1a;Agent-Reach 是什么&#xff1f;它解决的不是“能不能用”&#xff0c;而是“怎么用得稳、用得准、用得省”Agent-Reach 这个名字乍看像某个开源模型或工具库&#xff0c;但结合 CLI、API、YouTube、Reddit 这些高频热词&#xff0c;再叠加上“zcode cl…

2026/10/9 6:34:27 阅读更多 →
HTML5移动端拍照上传全链路实战:从getUserMedia到EXIF修正与断网续传

HTML5移动端拍照上传全链路实战:从getUserMedia到EXIF修正与断网续传

简介&#xff1a;本资源是一套面向Web前端开发者与全栈初学者的HTML5移动端拍照上传实战方案&#xff0c;聚焦在普通HTTP环境下调用手机摄像头实时拍照并上传至PHP后台的核心功能实现。资源共22个文件&#xff0c;包含1个可直接运行的index.html主页面、1个uploadfile.php服务端…

2026/10/9 6:34:27 阅读更多 →
Jetpack Compose与HarmonyOS ArkUI状态管理对比:从remember到@State的迁移指南

Jetpack Compose与HarmonyOS ArkUI状态管理对比:从remember到@State的迁移指南

我去年接了一个双端项目——既有Jetpack Compose写的Android端&#xff0c;又有HarmonyOS的ArkUI版本。一开始我想着&#xff1a;"都是声明式编程&#xff0c;Compose和ArkUI应该差不多。"结果真正写起来才发现&#xff0c;UI描述方式的相似只是表象&#xff0c;单是…

2026/10/9 6:34:27 阅读更多 →
基于SpringBoot+Vue的二手车交易系统:从业务拆解到部署实践

基于SpringBoot+Vue的二手车交易系统:从业务拆解到部署实践

做一个二手车交易系统&#xff0c;听上去像是个老掉牙的练手项目&#xff0c;但真把它拆开来看&#xff0c;你会发现它几乎把一个商业项目该有的技术问题都覆盖了一遍。基于SpringBootVue的二手车交易管理系统源码&#xff0c;配上MyBatis和MySQL&#xff0c;这套组合不是什么花…

2026/10/9 6:34:27 阅读更多 →
带平衡约束的最短路:从ICPC Ballance题看帕累托状态压缩

带平衡约束的最短路:从ICPC Ballance题看帕累托状态压缩

题目名是Grand Prix of Ballance&#xff0c;从ICPC 2024成都站出来的。我第一眼看到这个标题的时候&#xff0c;第一反应是“Ballance”这个单词拼错了还是故意玩梗&#xff0c;后面在大屏幕上看到题目背景里那个悬浮轨道和滚动的小球&#xff0c;才确认就是那个经典的平衡球游…

2026/10/9 6:34:27 阅读更多 →
Vue 3 网络请求封装与 Element Plus 组件库选型实战指南

Vue 3 网络请求封装与 Element Plus 组件库选型实战指南

1. 项目到了第10节&#xff0c;网络请求这关必须打通学 Vue.js 看到“网络请求”这一节&#xff0c;很多人的第一反应是“不就是调个接口嘛”。但真到了实际项目里你会发现&#xff0c;网络请求层的设计决定了你后面写页面是舒服还是遭罪。这一节的内容说白了就两件事&#xff…

2026/10/9 6:33:26 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题&#xff0c;隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题&#xff0c;排查到最后发现是ZonedDateTime序列化后时区丢了&#xff0c;用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问&#xff1a;办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好&#xff0c;问题是工作场景经常要在几处环境之间来回切换&#xff0c;每次都先登录跳板机再层层代理&#xff0c;实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及&#xff0c;但真正动手搭过一套能跑起来的 Agent 系统的人都知道&#xff0c;从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地&#xff0c;从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →