删除包含无效字符(-encoding)的文件夹

删除包含无效字符(-encoding)的文件夹

在我安装的 Linux Mint 18.3 中,我的区域设置出现了问题,导致生成的文件夹名称中的编码无效。

我现在想删除该文件夹,但我不知道如何做到这一点。我尝试使用我的文件管理器(Dolphin)以及终端(sudo rmdir <folder name>),但是两个命令都失败,声称给定的文件夹不存在。

但是,它仍然会通过命令显示在文件管理器中ls

sudo rmdir Einf�hrung in die Biochemie/
rmdir: failed to remove 'Einf�hrung': No such file or directory
rmdir: failed to remove 'in': No such file or directory
rmdir: failed to remove 'die': No such file or directory
rmdir: failed to remove 'Biochemie/': No such file or directory

目录的名称是从 的输出复制的ls

答案1

您可以使用*

sudo rm -rfi Ein*

或者

sudo rm -rfi *Biochemie

假设没有其他目录与该模式匹配,在这种情况下,您必须选择一个唯一的模式。

您也可以使用rmdir代替rm.

作为杰夫·夏勒指出,-i如果模式匹配不被删除的目录,该选项将有所帮助(通过提示每次匹配时进行确认)。

答案2

在这种情况下,像 Thunar 这样的可视化文件管理器就非常方便了。

如果您的系统没有 GUI,像 midnight-commander 这样的工具会很有帮助。

在简单的情况下,使用命令完成可能就足够了。

 rm -i Einf→→

其中 → 代表 Tab 键,或者像 ManOv 所示,也许通配符就足够了:

 rm 'Einf?hrung in die Biochemie'
 rm 'Einf*hrung in die Biochemie'

如果您不允许安装如此现代的东西, find 可能会有所帮助:

ls -la Ein*

您可以调查文件属性,例如大小、修改时间、所有者、属性……以查找:

find -maxdepth 1 -type f -name "Einf*hrung *chemie" -mtime -4 -mtime +2 -size +2000 -size -2200

如果结果只是一个特定文件,请添加删除开关。这不适用于所有类型的查找,但适用于 GNU-find:

find -maxdepth 1 -type f -name "Einf*hrung *chemie" -mtime -4 -mtime +2 -size +2000 -size -2200 -delete

对于其他查找版本,您也会在这里找到很多如何删除文件的示例。

答案3

解决方案是重命名所述目录的父目录中的所有其他文件和文件夹,这些文件和文件夹也以Eineg 开头,并在它们前面加上 a 前缀1_,然后进入终端键入 insudo rmdir Ein并点击选项卡,让自动完成功能为我完成其余的工作。
这实际上相应地解析了字符,以便我最终能够使用该命令删除目录。

相关内容