我有一个文件 cover.jpg,我想删除它。
如果我运行rm cover.jpg
,我会收到错误“rm:无法删除‘cover.jpg’:没有此文件或目录。”
如果我运行rm *.jpg
,我会得到同样的错误。
如果我输入rm c
并按制表符完成,我会得到同样的错误。
如果我运行ls -1b
,文件的名称将显示为 cover.jpg,完全正常。
如果我运行chmod 555 cover.jpg
,它运行正常。
find -name cover.jpg
找到该文件,但find -name cover.jpg -exec rm {} \;
出现同样的错误。
我对其所在目录拥有完全权限,并且可以愉快地删除其中的所有其他文件,或者创建新的文件。
rm -f
无法删除文件。
我无法在其上使用 lsattr 或 chattr。
我还能尝试什么?我已经搜索到 Google 的第三页,却找不到任何有用的信息。
答案1
利用结果为“肯定”的命令来了解情况。文件名中可能有一个额外的特殊字符(例如空格)。您可以计算字符数来检查这一点。
发布输出
$ find . -maxdepth 1 -name cover.jpg
$ find . -maxdepth 1 -name "cover.jpg"
$ find . -maxdepth 1 -name cover.jpg | wc -c
$ find . -maxdepth 1 -name "cover.jpg" | wc -c
$ ls -1b | grep cover
$ ls -1b | grep cover | wc -c
$ ls -1b cover*
$ ls -al cover*