Невозможно удалить каталог, он не существует?

Невозможно удалить каталог, он не существует?

Каким-то образом эта папка была создана, когда я вошел в систему через sftp.

"Sep 19 18:50 "

Я попробовал удалить его через sftp.

Попробовал войти по SSH и удалить с помощью rm -rf от имени пользователя root

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, затем создал один файл fooв этой папке. Затем я sftp'd in, cd'd to tmpи запустил 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

Вы заметите, что все записи показывают дату и время. Это не часть их имени, это просто время, когда они были отмечены как последние измененные.

Имя справа от этого, отделенное пробелом. Таким образом, есть три записи:

  • 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показывает только записи .и .., когда -aуказан флаг (или когда вы явно указываете их имена или шаблон, который им соответствует, после lsв командной строке). Это справедливо как для lsкоманды в sftp, так и дляlsкоманда, выданная в сеансе полного входа в систему с обычной командной строкой.

решение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 с пробелом в качестве имени, это изменит имя папки на дату создания.

Спасибо за помощь!

Связанный контент