无法删除目录,不存在?

Kee*_*lan 3 ssh rm directory

当我通过 sftp 登录时,不知何故创建了这个文件夹。

"Sep 19 18:50 "
Run Code Online (Sandbox Code Playgroud)

我试图通过 sftp 删除它。

尝试使用 rm -rf 以 root 身份通过 SSH 登录并删除

Error:  rm /home/user/Downloads/manual/Sep 19 18:50  : no such file or directory
Run Code Online (Sandbox Code Playgroud)

如果 i ls -al 它会在那里显示。

root@ndsdsd:/home/user/Downloads/manual# ls -al
total 32
drwxrwxr-x 3 keelan keelan  4096 Sep 19 18:50
drwxrwxr-x 3 keelan keelan 12288 Sep 20 07:56 .
drwxr-xr-x 8 keelan keelan 16384 Sep 19 23:11 ..
Run Code Online (Sandbox Code Playgroud)

Eli*_*gan 5

我不认为你真的有一个名为Sep 19 18:50.

我创建了一个新文件夹tmp,然后foo在该文件夹中创建了一个文件。然后我sftp进去cdtmp,然后跑了ls -l

drwxrwxr-x    2 ek       ek           4096 Sep 19 19:39 .
drwxr-xr-x   30 ek       ek           4096 Sep 19 19:39 ..
-rw-rw-r--    1 ek       ek              0 Sep 19 19:39 foo
Run Code Online (Sandbox Code Playgroud)

您会注意到所有条目都显示日期和时间。这不是他们名称的一部分,只是他们被标记为上次修改的时间。

名称在其右侧,以空格分隔。因此有三个条目:

  • foo,我创建的文件。

  • ..,代表目录(即文件夹一向上):

    sftp> pwd
    Remote working directory: /home/ek/tmp
    sftp> cd ..
    sftp> pwd
    Remote working directory: /home/ek
    
    Run Code Online (Sandbox Code Playgroud)

    (除非您在/./目录树中没有上面的任何内容。然后 - 只有那时 -..代表与 相同的目录.。)

  • ., 代表当前目录(即您现在所在的目录)。

    sftp> cd tmp
    sftp> pwd
    Remote working directory: /home/ek/tmp
    sftp> cd .
    sftp> pwd
    Remote working directory: /home/ek/tmp
    
    Run Code Online (Sandbox Code Playgroud)

ls 只显示 .提供标志..时和条目-a(或者当您ls在命令行之后明确给出它们的名称或匹配它们的模式时)。ls在带有常规 shell 提示的完整登录会话中发出的命令sftpls命令都是如此。

  • @Keelan 我想知道这是否是您的图形 sftp 客户端中的错误。(那是哪个 GUI 客户端?)毕竟,文件的报告名称是其自身时间戳的*精确* 日期和时间,精确到分钟,这很奇怪。无论如何,`drwxr-xr-x 8 keelan keelan 16384 Sep 19 18:50 ..` 不是*报告一个名为`Sep 19 18:50` 的文件,而是一个名为`..` 的文件。在命令行 sftp 客户端中运行时,该行是该目录中 `ls -al` 的 *full* 输出吗?您是否有权访问 ssh 并获得 shell?如果是这样,那将提供更强大的机制来检查目录的内容。 (7认同)