我解压了一个损坏的 tar 文件,并设法得到了一些我无法删除的目录,如果我尝试删除它,似乎找不到ls
它,但显示它存在,无论是使用 bash 还是使用 python 我得到类似的行为,除了在我尝试用 删除它之后rm -rf
, ls
抱怨它找不到它,然后它列出它(见下文rm -rf
)。该find
命令显示文件存在,但我仍然想不出删除它的方法。
这是我的尝试:
在这里你看到了两者ls
并find
同意我们有一个目录,
rl]$ ls
mikeaâ??cnt
rl]$ find -maxdepth 1 -type d -empty -print0
./mikeaâcnt
Run Code Online (Sandbox Code Playgroud)
但我无法删除它:
rl]$ find -maxdepth 1 -type d -empty -print0 | xargs -0 rm -f -v
rm: cannot remove `./mikeaâ\302\201\302\204cnt': Is a directory
rl]$ ls
mikeaâ??cnt
Run Code Online (Sandbox Code Playgroud)
我可以cd
,但它是空的:
rl]$ cd mikeaâ^Á^Äcnt/
mikeaâ^Á^Äcnt]$ ls
mikeaâ^Á^Äcnt]$ pwd
.../rl/mikeaâcnt
mikeaâ^Á^Äcnt]$ cd ../
rl]$ ls
mikeaâ??cnt …
Run Code Online (Sandbox Code Playgroud) 在一个80GB大小的大约700,000个文件的目录中,有些文件名的文件名中含有非英文字符。除了费力地浏览文件列表之外,还有:
man ascii
(以便我可以测试这些文件是否被识别)?我在 Debian stable、Cinnamon DE 下运行,我有一些文件想用命令行删除(现在我用 Nemo 删除这些文件)。
例如,这些.txt
文件以“?”开头。在 shell 和 Nemo 中,这个 '?' 被回车代替:
$@debian: ls
ssolveIncpUL46pK ?ssolveIncpUL46pK.txt
Run Code Online (Sandbox Code Playgroud)
我试过:
rm ?ss*
rm \?ss*
rm \ ss*
Run Code Online (Sandbox Code Playgroud)