无法将目录或 `cd` 删除到存在的目录中

use*_*757 2 command-line

我似乎无法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
Run Code Online (Sandbox Code Playgroud)

Eli*_*gan 9

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

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

因此,不要调用 directory ,而是modx_camwright_2013_08_30__1377875941调用它:

' modx_camwright_2013_08_30__1377875941'
Run Code Online (Sandbox Code Playgroud)

为此cd,运行:

cd ' modx_camwright_2013_08_30__1377875941'
Run Code Online (Sandbox Code Playgroud)

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

rm -r ' modx_camwright_2013_08_30__1377875941'
Run Code Online (Sandbox Code Playgroud)

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

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

?modx_camwright_2013_08_30__1377875941
Run Code Online (Sandbox Code Playgroud)

(不要使用引号。)

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

*modx_camwright_2013_08_30__1377875941
Run Code Online (Sandbox Code Playgroud)

(也不要为此使用引号。)

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

  • 很好的抓到伊利亚! (4认同)