访问我无法在 shell 中“命名”的文件夹

访问我无法在 shell 中“命名”的文件夹

我有一个顽固文件夹,一定是有人意外创建的,并且一直存在。我可以使用以下命令查看它:

# find /var/www/html -maxdepth 1 -type d

这给了我:

/var/www/html
/var/www/html/files
/var/www/html/.?

不幸的是,有一个问号不是实际的字符?,它似乎只是表示该字符没有正确的字形和/或翻译。所以类似的事情rmdir是不可能的。我的系统与许多现代 Ubuntu 系统一样,将 UTF-8 作为默认语言环境,但不可否认的是,有问题的文件夹可能源自 RHEL 或 CentOS 框(tar已安装并解压)。

# env|grep LANG
LANG=en_US.UTF-8

当我尝试cd .\?(如前所述,实际上不是?)时,bash 自动将其更正为.,并且由于某种原因最终变成了/var/www/html/.。现在,如果我不能有效地“命名”这个文件夹,我就无法以任何方式访问它。我怎样才能摆脱它而不危及整个系统?

现在我detox已经安装了,但根据它的文档,它似乎只对文件起作用,而不是文件夹,此外它仍然要求我能够以某种方式命名对象才能对其执行某些操作。

答案1

一些建议,首先尝试使用制表符补全

cd /var/www

rm-rf./.TabTab

或者使用查找

cd /var/www
find -maxdepth 1 -type d -exec rm -ri '{}' \;

如果失败,请尝试运行 fsck(从活动 CD)。

发布您收到的任何错误消息或异常行为

答案2

rm -i *提示rm确认任何文件。只需按即可确认n除该文件之外的所有文件,然后y按 即可确认要删除的文件。

您还可以猜测 3 个字符的字符数量rm -i .???(这样您就不会冒险按y太多次)。

答案3

如果你只有这两个目录

/var/www/html/files
/var/www/html/.?

/var/www/html/,你可以删除一个没有files用命令命名的

find . -mindepth 1 -maxdepth 1 ! -name files -exec rm -rf {} \;

相关内容