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