Cerberus-FTP服务器中~$文件的隐藏与存储路径调整方案咨询
我之前帮客户处理过Cerberus-FTP里Office临时文件堆积的问题,给你几个靠谱的解决思路,从隐藏到迁移再到自动清理都有:
方案1:通过Cerberus自定义规则隐藏~$开头的文件
这个方法最直接,不用动文件存储位置,只是让用户在浏览目录时看不到这些临时文件:
- 登录Cerberus的管理控制台,导航到 Settings > File System > Custom File Filters
- 点击「Add Filter」,规则类型选「Filename Match」,匹配模式选择「Starts With」,输入
~$ - 在「Action」下拉框里选择「Hide file from directory listings」,保存规则
设置完成后,所有用户通过FTP或Web界面浏览时,都不会看到任何~$开头的文件,但Office仍然能正常生成和使用这些临时文件,完全不影响编辑流程。
方案2:迁移~$临时文件到专用目录(推荐)
如果不想让这些临时文件占用存储根目录的空间(或者避免误操作),可以利用Cerberus的脚本钩子功能,自动把新生成的~$文件移到专门的临时文件夹:
- 进入Cerberus管理界面,到 Settings > Scripting > Event Hooks
- 添加一个「File Created」事件的钩子,选择用PowerShell脚本执行,脚本内容如下:
param($FilePath) # 检测文件名是否以~$开头 if ($FilePath -like "*~$*") { # 定义临时文件存储目录,换成你想存放的路径 $TempDir = "C:\Cerberus_Temp_Files" # 如果目录不存在就创建 if (-not (Test-Path $TempDir)) { New-Item -ItemType Directory -Path $TempDir | Out-Null } # 移动临时文件到目标目录 Move-Item -Path $FilePath -Destination $TempDir -Force }
- 保存钩子设置后,所有新生成的~$文件都会被自动转移到指定目录,根目录保持整洁。之后你还可以给这个临时目录设置定时清理,比如每周删除一次超过7天的文件。
方案3:定时自动清理~$临时文件
如果以上两种方法都不想用,也可以用系统定时任务直接清理这些文件:
- 打开Windows「任务计划程序」,创建一个新的定时任务
- 设置触发时间(比如每天凌晨2点),然后添加一个操作,执行批处理脚本:
# 把路径换成你的Cerberus文件存储根目录 for /r "D:\Cerberus_Cloud_Storage" %%f in (~$*.xlsm) do del "%%f"
这个脚本会递归遍历所有子文件夹,删除所有~$开头的Excel临时文件,适合不想改动Cerberus配置的场景。
内容的提问来源于stack exchange,提问作者Diederik




