You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu Server 16.4.04中带反斜杠同名文件夹的生成与删除问题

解决带末尾反斜杠的特殊文件夹创建与删除问题

问题根源分析

先帮你理清为什么会出现这个奇怪的文件夹:

  • Linux系统和Windows不同,文件名里允许包含反斜杠\(Windows里它是路径分隔符),所以当你的PHP脚本中$directory变量末尾不小心带了反斜杠时,mkdir()就直接创建了一个名字以\结尾的文件夹。
  • 至于ls命令看不到它,是因为Shell会把反斜杠当成转义字符解析,直接输入ls时,Shell会自动去掉这个反斜杠,自然找不到对应的文件;而dir或者ls -b会显示原始的文件名,所以能看到它的存在。

快速删除这个特殊文件夹

给你几个可靠的删除方法,任选其一即可:

  1. 用单引号包裹文件夹名(单引号会让Shell不解析里面的特殊字符):
rm -r 'directory\'

注意这里的directory\要和你实际的文件夹名完全一致,包括末尾的反斜杠。

  1. 用反斜杠转义自身:
rm -r directory\\

这里的两个反斜杠,第一个是转义符,告诉Shell第二个反斜杠是文件名的一部分。

  1. 用find命令定位并删除:
    如果不确定准确文件名,可以先查找确认再删除:
# 先查找目标文件夹
find . -name '*\$'
# 找到后执行删除(替换成实际的文件名)
find . -name 'directory\' -exec rm -r {} \;

避免再次踩坑的建议

回头检查你的PHP脚本,确保$directory变量末尾没有多余的反斜杠,可以用rtrim()统一处理:

$directory = rtrim($directory, '/\\'); // 去掉末尾的斜杠,兼容Linux和Windows路径格式
if (!file_exists($directory)) {
    mkdir($directory);
}

内容的提问来源于stack exchange,提问作者A. Johnston

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:23:14