无法删除目录或无法“cd”到已存在的目录

无法删除目录或无法“cd”到已存在的目录

我似乎无法rm -r进入cd一个明显存在的目录,但我得到了错误No such file or directory。发生了什么?相关命令如下。我应该强制这样做吗?我也想知道为什么会发生这种情况。

root@jaxsin:/var/www/camwright/core/components/databackup/dumps# ls -al
total 24
drwxr-xr-x 2 root     root     4096 Aug 30 11:19  modx_camwright_2013_08_30__1377875941
drwxr-xr-x 2 root     root     4096 Aug 30 11:20  modx_camwright_2013_08_30__1377876001
drwxr-xr-x 2 root     root     4096 Aug 30 11:21  modx_camwright_2013_08_30__1377876062
drwxr-xr-x 5 www-data www-data 4096 Aug 30 11:21 .
drwxr-xr-x 7 www-data www-data 4096 Aug 30 10:45 ..
-rw-r--r-- 1 www-data www-data   21 Aug 30 10:45 readme.txt

root@jaxsin:/var/www/camwright/core/components/databackup/dumps# cd modx_camwright_2013_08_30__1377875941/
-su: cd: modx_camwright_2013_08_30__1377875941/: No such file or directory

root@jaxsin:/var/www/camwright/core/components/databackup/dumps# rm -r modx_camwright_2013_08_30__1377875941/
rm: cannot remove `modx_camwright_2013_08_30__1377875941/': No such file or directory

答案1

目录modx_camwright名称似乎以空格开头。如果你仔细观察,你会发现该字母m出现在该行的右侧,比其他条目的名称更靠前。此外,它们列在以 开头的条目之前.,这表明它们不以任何字母开头。(毕竟,readme.txt是“按字母顺序排列的”.目录..。)

ls或者它可能是显示为空格的其他一些奇怪的字符。

因此,不要调用目录modx_camwright_2013_08_30__1377875941,而是调用:

' modx_camwright_2013_08_30__1377875941'

cd执行此操作,请运行:

cd ' modx_camwright_2013_08_30__1377875941'

要删除它及其所有内容,请运行:

rm -r ' modx_camwright_2013_08_30__1377875941'

如果这些命令不起作用,那么开头的字符可能不是空格。(很可能是空格——大多数其他空白字符都显示为?s ls。)

您可以使用?来匹配单个字符。因此,您可以尝试通过以下名称调用此目录:

?modx_camwright_2013_08_30__1377875941

(不要使用引号。)

或者如果它是多个字符,您可以使用*,它匹配零个或多个字符:

*modx_camwright_2013_08_30__1377875941

(也不要使用引号。)

最有可能的是,只需引用名称并在开头添加一个空格(如上所述)即可。

相关内容