Как я могу удалить файл, который есть, но система говорит, что его там нет?
Как я могу удалить файл, который есть, но система говорит, что его там нет?
Ответы:
Я знаю, что это старый, но у меня была такая же проблема, как у вас, только с папкой, а не с файлом. Ни один из предложенных здесь методов не сработал.
Мне удалось решить проблему, создав папку в том же положении и с тем же именем, что и я, которую я не мог удалить. Папка была создана правильно и «заменила» несуществующую. Затем я просто удалил новую папку, и проблема исчезла. Просто как тот.
У меня такая же проблема. Это была проблема в индексных записях раздела. Я решил это, запустив Windows, если у вас двойная загрузка, или вставьте live CD Windows XP или Windows 7, а затем выполните следующие действия:
cmd
щелкните правой кнопкой мыши -> Запуск от имени администратора. chkdsk /f/x D:
(где D - ваша буква диска). 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, как показано в списке в качестве первого столбца.
Затем вы можете попытаться сбросить индекс. Пожалуйста, прочитайте весь пост, прежде чем делать что-либо .
Начать debugfs
с правами root:
rarkenin@ubuntu-alt-64-vbox-1:~$ sudo debugfs
[sudo] password for rarkenin:
debugfs 1.42 (29-Nov-2011)
debugfs:
и дайте команду open /dev/sda1
с правильным блочным устройством для вашего раздела.
Затем дайте команду, чтобы сбросить индекс, номер которого вы получили ранее:
cat <4980758>
используя <
и >
вокруг номера индекса.
Если он читает какой-то случайный текст, закройте терминал и откройте его снова. Запустите debugfs
снова и дайте open
команду снова.
Теперь вы можете попробовать удалить файл. Это может привести к серьезному повреждению файловой системы.
debugfs: rm [filename]
debugfs: unlink [filename]
debugfs: kill_file [filename]
debugfs: kill_file <inode>
Обратите внимание, что это можно сделать, даже если выяснится, что в файле никогда не было inode. Попробуйте команды по одной в порядке, указанном выше. Выйдите из debugfs и проверьте, существует ли файл. Если нет, начните снова, но следуйте следующей инструкции.
debugfs
предназначен только для типов файловых систем ext2, ext3 и ext4.
покажи нам терминал .... сделай ll | grep panorama
и покажи нам это; добавь это к своему вопросу ...
Мое предложение - сделать как root rm -f panorama.jpg
.
в человеке из рм я нашел это:
-f, --force
ignore nonexistent files, never prompt
Сначала войдите как 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.
Глядя на ваши скриншоты, я вижу, что у вас установлена группа root. Я бы попробовал использовать chown и посмотреть, решит ли это проблему.
sudo chown -hR [username]:[username] /home/[username]
Замена [имя пользователя] на ваше имя пользователя.
Вы получите пару ошибок.
Непечатные символы в именах файлов могут вызывать такие проблемы, как пробел. Попробуйте интерактивную опцию rm и скажите «Y» файлу, который вы хотите удалить. «
Rm -i» * pan * "Обратите внимание на использование * s для сопоставления с любыми (даже не печатными) символами.
Может быть, индекс имеет была удалена, но не запись каталога. Попробуйте ls -i, чтобы увидеть inode. fsck файловая система, чтобы решить эту проблему.
Попробуйте так:
cd dir-to-delete
find ./ -exec rm -rf {} \;
У меня была такая же проблема с файлом, созданным пользовательской веб-базой EMR (электронная медицинская карта) в Chrome. sudo touch /forcefsck
с последующим перезапуском сработало у меня и ароматически удалил файл. Взята помощь из следующих страниц
Linux Mint 18.3 Мой несуществующий файл был «filename.pdf.crdownload». Он появился на моем рабочем столе в виде пакета, то есть в zip-файле в Windows. Для этого я щелкнул правой кнопкой мыши Свойства, Открыть с помощью, который показал нулевые приложения, поэтому я изменил его на Открыть с помощью «Менеджера архивов». Сразу файл исчез с моего рабочего стола. т.п.н.