Невозможно удалить файл - нет такого файла или каталога

I deleted it once, but it's ghost is still there :)

Как я могу удалить файл, который есть там, но система говорит, что там нет?

Permissions tab - tried changing it, but it would reset itself automatically This is what happens when I click "Delete"

12
задан 16 July 2012 в 21:49

11 ответов

Глядя на ваши скриншоты, я вижу, что у вас установлена ​​группа root. Я бы попробовал использовать chown и посмотреть, решит ли это проблему.

sudo chown -hR [username]:[username] /home/[username]

Замена [username] на ваше имя пользователя.

Вы получите пару ошибок.

example

0
ответ дан 16 July 2012 в 21:49

покажи нам терминал ... сделай ll | grep panorama и покажи нам это; добавьте его в свой вопрос ...

Я предлагаю сделать как root rm -f panorama.jpg.

в человеке Р.М. я нашел это:

-f, --force
              ignore nonexistent files, never prompt
0
ответ дан 16 July 2012 в 21:49

Я знаю, что это старый файл, но у меня была та же проблема, что и у вас, только с папкой, а не с файлом. Ни один из предложенных здесь методов не сработал.

Мне удалось решить проблему, создав папку в том же положении и с тем же именем, что и я, которую я не мог удалить. Папка была создана правильно и «заменила» несуществующую. Затем я просто удалил новую папку, и проблема исчезла. Просто так.

0
ответ дан 16 July 2012 в 21:49

У меня была такая же проблема. Это была проблема в индексных записях раздела. Я решил это, запустив Windows, если у вас двойная загрузка, или вставьте live CD Windows XP или Windows 7, а затем выполните следующие действия:

  1. Поиск КОМАНДЫ ПОДСКАЖИТЕ, что: cmd верно -click -> Запуск от имени администратора.
  2. chkdsk /f/x D: (где D - буква вашего диска).
  3. Нажмите Y, если он запрашивает Y / N
  4. Проверьте диск на наличие файла, который вы хотите удалить. Может быть, он удален или вы можете удалить его.

100% работают

0
ответ дан 16 July 2012 в 21:49

Непечатные символы в именах файлов могут вызывать такие проблемы, как пробел. Попробуйте интерактивную опцию rm и скажите 'Y' файлу, который вы хотите удалить "
rm -i" * pan * "Обратите внимание на использование * s для сопоставления любым (даже не печатным) символам .
Может быть, был удален inode, но не запись в каталоге. Попробуйте ls -i, чтобы увидеть inode. Fsck файловая система, чтобы решить эту проблему.

0
ответ дан 16 July 2012 в 21:49

Предупреждение: для использования этих инструкций потребуется debugfs. Они могут вызвать потерю данных.

Они адаптированы к исходной проблеме и могут быть точными или неточными для любых будущих посетителей этой страницы. Любая потеря данных может быть непоправимой или даже усугублена fsck.

Это может быть потерянный инод. Пожалуйста, запустите ls -li, чтобы получить список номеров инодов, затем вы можете попытаться сбросить указанный инод. Например, если ваш ls -li выглядит следующим образом:

rarkenin@ubuntu-alt-64-vbox-1:~$ ls -li
total 58672
4980758 -rwxr-xr-x 2 rarkenin rarkenin     4096 Sep 23 18:45 panorama.jpg
---SNIP---

, то номер индекса равен 4980758, как показано в списке в качестве первого столбца.

Затем вы можете попытаться сбросить индекс. Пожалуйста, прочитайте весь пост, прежде чем делать что-нибудь .

  1. Запустите debugfs от имени пользователя root:

    rarkenin@ubuntu-alt-64-vbox-1:~$ sudo debugfs
    [sudo] password for rarkenin: 
    debugfs 1.42 (29-Nov-2011)
    debugfs:  
    

    и введите команду open /dev/sda1 с правильным блочным устройством для вашего раздела.

  2. Затем дайте команду, чтобы сбросить индекс, номер которого вы получили ранее:

    cat <4980758>
    

    , используя < и > вокруг номера индекса.

  3. Если он читает какой-то случайный текст, закройте терминал и откройте его снова. Запустите debugfs еще раз и снова введите команду open.

  4. Теперь вы можете попробовать удалить файл. Это может привести к серьезному повреждению файловой системы.

    debugfs: rm [filename]
    
    debugfs: unlink [filename]
    
    debugfs: kill_file [filename]
    
    debugfs: kill_file <inode>
    

Обратите внимание, что это можно сделать, даже если выяснится, что в файле никогда не было inode. Попробуйте команды по одной в порядке, указанном выше. Выйдите из debugfs и проверьте, существует ли файл. Если нет, начните снова, но следуйте следующей инструкции.

Сделайте резервную копию, если это возможно!

0
ответ дан 16 July 2012 в 21:49

У меня была такая же проблема с файлом, созданным пользовательской веб-базой EMR (электронная медицинская карта) в Chrome. sudo touch /forcefsck с последующим перезапуском сработало у меня и ароматически удалило файл. Получена справка на следующих страницах

  1. https://ubuntuforums.org/archive/index.php/t-1673273.html
  2. Force fsck безопасно?
0
ответ дан 16 July 2012 в 21:49

Linux Mint 18.3 Мой несуществующий файл был «filename.pdf.crdownload». Он появился на моем рабочем столе в виде пакета, то есть zip-файла в Windows. Для этого я щелкнул правой кнопкой мыши Свойства, Открыть с помощью, который показал нулевые приложения, поэтому я изменил его на Открыть с помощью «Менеджера архивов». Сразу файл исчез с моего рабочего стола. кб

0
ответ дан 16 July 2012 в 21:49

Как сказал ubfan1, непечатные символы в именах файлов могут вызвать такие проблемы.

  1. touch
  2. rm

работал для меня, так как «touch» перекрывал поврежденный файл.

0
ответ дан 16 July 2012 в 21:49

Сначала войдите в систему как пользователь root с помощью sudo -s

Вы можете попробовать выполнить rm -v <file> и просмотреть подробный вывод, чтобы увидеть, что происходит при попытке удалить файл. Проверьте параметры для команды ниже.

Если это не помогло, вы можете использовать опцию Force, как и все остальные. Вы также можете попробовать удалить весь каталог, принудительно выполнив рекурсивное удаление: rm -rfv **full directory address here**



Из UNIX Command Guide:

ОПИСАНИЕ

   rm [OPTION]... FILE...

ОПИСАНИЕ

   rm removes each file. By default, it does not remove directories.

   If a file is unwritable, the standard input is a tty,  and  the  -f  or
   --force  option is not given, rm prompts the user for whether to remove
   the file.  If the response is not affirmative, the file is skipped.

ОПЦИИ

   Remove (unlink) the FILE(s).

   -f, --force
      ignore nonexistent files, never prompt

   -i, --interactive
      prompt before any removal

   --no-preserve-root do not treat '/' specially (the default)

   --preserve-root
      fail to operate recursively on '/'

   -r, -R, --recursive
      remove directories and their contents recursively

   -v, --verbose
      explain what is being done

   --help display this help and exit

   --version
      output version information and exit

   By default, rm does not remove directories.  Use the --recursive (-r or
   -R)  option to remove each listed directory, too, along with all of its
   contents.

   To remove a file whose name starts with a '-', for example '-foo',  use
   one of these commands:

      rm -- -foo

      rm ./-foo

   Note  that  if  you  use rm to remove a file, it is usually possible to
   recover the contents of that file.  If you want more assurance that the
   contents are truly unrecoverable, consider using shred.
0
ответ дан 16 July 2012 в 21:49

Попробуйте так:

cd dir-to-delete
find ./ -exec rm -rf {} \;
0
ответ дан 16 July 2012 в 21:49

Другие вопросы по тегам:

Похожие вопросы: