How can I delete a file that is there but the system says is not there?
How can I delete a file that is there but the system says is not there?
I know this is old, but I had the same problem as yours, only with a folder, not with a file. None of the methods suggested here worked.
I managed to solve the problem by creating a folder in the same position and with the same name as the one I couldn't delete. The folder was created correctly and it "replaced" the non existing one. Then I simply removed the new folder and the issue was gone. Simple as that.
I had the same problem. It was a problem in index entries of the partition. I solved it by start Windows if your system is dual boot or insert live CD of Windows XP or Windows 7, and then do the following steps:
cmd
right-click -> Run as administrator. chkdsk /f/x D:
(where D is your drive letter). 100% working
Warning: These instructions will require one to use
debugfs
. They can cause data loss.They are tailored to the original problem and may or may not be accurate for any future visitors on this page. Any data loss may be irreparable or even aggravated by
fsck
.
It may be a lost inode. Please run ls -li
to get a list of inode numbers, then you can try to dump the referenced inode. For example, if your ls -li
looks like the following:
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---
then the inode number is 4980758 as shown in the list as the first column.
You can then try to dump the inode. Please read the entire post before doing anything.
Start debugfs
as root:
rarkenin@ubuntu-alt-64-vbox-1:~$ sudo debugfs
[sudo] password for rarkenin:
debugfs 1.42 (29-Nov-2011)
debugfs:
and give the command open /dev/sda1
with the correct block device for your partition.
Then, give the command to dump the inode whose number you got earlier:
cat <4980758>
using <
and >
around the inode number.
If it reads some random text, close the terminal and open it again. Run debugfs
again and give the open
command again.
Now, you can try to delete the file. This can result in severe filesystem corruption.
debugfs: rm [filename]
debugfs: unlink [filename]
debugfs: kill_file [filename]
debugfs: kill_file <inode>
Note that this can be done even if it turns out the file never had an inode. Try the commands one at a time, in the order shown above. Exit debugfs and check if the file exists. If not, begin again but follow the next instruction.
debugfs
is only intended for ext2, ext3, and ext4 filesystem types.
May 22, 2016 at 13:38
First log in as root with sudo -s
You can try doing rm -v <file>
and look out the verbose output to see whats going on while its trying to remove the file. Check out the options for the command below.
If that fails, you can use the force option like everyone else said. You can also try removing the entire directory by forcing a recursive removal: rm -rfv **full directory address here**
From the UNIX Command Guide:
SYNOPSIS
rm [OPTION]... FILE...
DESCRIPTION
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.
OPTIONS
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.
Looking at your screenshots I see you have the group set as root. I'd try using chown and see if it fixes the problem.
sudo chown -hR [username]:[username] /home/[username]
Replacing [username] with your username.
You'll get a couple errors.
Non printing characters in filenames can cause such problems -- like a space.
Try the interactive option of rm, and say 'Y' to the file you want to delete"
rm -i "*pan*"
Note the use of *s to match any (even non-printint) characters.
Could be the inode has been removed, but not the directory entry. Try ls -i to see the inodes. fsck the file system to fix this sort of problem.
As ubfan1 said, non printing characters in filenames can cause such problems.
worked for me since 'touch' overrided the corrupted file.
I had a same problem with the file created by custom web base EMR (electronic medical record) under chrome. sudo touch /forcefsck
followed by restart worked for me and aromatically deleted file. Taken help form following pages
Linux Mint 18.3 My non-existent file was ¨filename.pdf.crdownload¨ It showed up on my desktop as a package, i.e. a zip file in Windows speak. For the heck of it I did right click, Properties, Open with, which showed zero apps, so I changed it to Open With ¨Archive Manager¨. Immediately the file disappeared from my desktop. kb
show us the terminal.... do a ll | grep panorama
and show us that; add it to your question...
My suggestion is to do as root rm -f panorama.jpg
.
in the man of rm I found this:
-f, --force
ignore nonexistent files, never prompt