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