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

Все еще там

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

Вкладка Это то, что происходит, когда я нажимаю

11 ответов

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

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

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

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

100% работает

Предупреждение: эти инструкции потребуют один, чтобы использовать 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 как корень:

    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 и проверьте, существует ли файл. Если нет, начните снова, но следуйте следующей инструкции.

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

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

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

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

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

пример

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

  1. потрогать
  2. комната

работал для меня, так как "touch" перезаписал поврежденный файл.

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

Сначала войдите как root с sudo -s

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

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



Из руководства по UNIX:

СИНТАКСИС

   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.

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

cd dir-to-delete
find ./ -exec rm -rf {} \;

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

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

  1. https://ubuntuforums.org/archive/index.php/t-1673273.html
  2. Принудительно использовать fsck?

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

Мое предложение сделать как root rm -f panorama.jpg,

в человеке из рм я нашел это:

-f, --force
              ignore nonexistent files, never prompt
Другие вопросы по тегам