无法删除目录,不存在?

无法删除目录,不存在?

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

"Sep 19 18:50 "

我尝试通过 sftp 删除它。

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

Error:  rm /home/user/Downloads/manual/Sep 19 18:50  : no such file or directory

如果 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 ..

答案1

我认为您实际上没有一个名为 的文件Sep 19 18:50

我创建了一个新文件夹,然后在该文件夹中tmp创建了一个文件。然后我进入,转到,并运行:foosftpcdtmpls -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

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

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

  • foo,我创建的文件。

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

    sftp> pwd
    Remote working directory: /home/ek/tmp
    sftp> cd ..
    sftp> pwd
    Remote working directory: /home/ek
    

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

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

    sftp> cd tmp
    sftp> pwd
    Remote working directory: /home/ek/tmp
    sftp> cd .
    sftp> pwd
    Remote working directory: /home/ek/tmp
    

ls仅当提供了标志时(或者在命令行中明确给出它们的名称或与它们匹配的模式时),才会显示.和条目。这对命令和..-alslssftpls在具有常规 shell 提示符的完整登录会话中发出的命令。

答案2

您误解了 的输出ls。实际目录名称是..,它是用于在文件系统中导航的特殊目录(例如当您键入cd ..以向上一级时)。每个子目录都有一个。Sep 19 18:50只是目录的创建日期。

答案3

我认为这是由于空格造成的,请尝试以下操作:

sudo rm -rf "/home/user/Downloads/manual/Sep 19 18:50"

答案4

root@dsadwsd:/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 ..

当我强调:

drwxrwxr-x 3 keelan keelan  4096 Sep 19 18:50

末尾有一个空格。所以我这样做了:

root@dsadwsd:/home/user/Downloads/manual# rm -rf " "

这样就删除了文件夹。奇怪的是文件夹名称不只是空白(空格),而是采用文件夹创建日期。

我现在可以通过 sftp 创建一个以空格为名称的新文件夹来复制此功能,它会将文件夹名称更改为创建日期。

谢谢您的帮助!

相关内容