Jak mogę usunąć plik, który tam jest, ale system mówi, że go nie ma?
Jak mogę usunąć plik, który tam jest, ale system mówi, że go nie ma?
Odpowiedzi:
Wiem, że to stare, ale miałem taki sam problem jak twój, tylko z folderem, a nie z plikiem. Żadna z sugerowanych tutaj metod nie zadziałała.
Udało mi się rozwiązać problem, tworząc folder w tej samej pozycji i o tej samej nazwie co ta, której nie mogłem usunąć. Folder został poprawnie utworzony i „zastąpił” nieistniejący. Potem po prostu usunąłem nowy folder i problem zniknął. Proste.
Miałem ten sam problem. Wystąpił problem z wpisami indeksu partycji. Rozwiązałem go, uruchamiając system Windows, jeśli Twój system ma podwójny rozruch lub włóż płytę CD z systemem Windows XP lub Windows 7, a następnie wykonaj następujące czynności:
cmd
kliknij prawym przyciskiem myszy -> Uruchom jako administrator. chkdsk /f/x D:
(gdzie D jest literą dysku). 100% pracy
Ostrzeżenie: te instrukcje będą wymagać użycia
debugfs
. Mogą powodować utratę danych.Są one dostosowane do pierwotnego problemu i mogą nie być dokładne dla przyszłych użytkowników tej strony. Każda utrata danych może być nieodwracalna, a nawet pogorszyć
fsck
.
Może to być zagubiony i-węzeł. Uruchom, ls -li
aby uzyskać listę numerów i-węzłów, a następnie możesz spróbować zrzucić powołany i-węzeł. Na przykład, jeśli ls -li
wygląda to tak:
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---
następnie numer i-węzła to 4980758, jak pokazano na liście jako pierwsza kolumna.
Następnie możesz spróbować zrzucić i-węzeł. Proszę przeczytać cały post przed zrobieniem czegokolwiek .
Zacznij debugfs
jako root:
rarkenin@ubuntu-alt-64-vbox-1:~$ sudo debugfs
[sudo] password for rarkenin:
debugfs 1.42 (29-Nov-2011)
debugfs:
i wydaj polecenie open /dev/sda1
z odpowiednim urządzeniem blokującym dla twojej partycji.
Następnie wydaj polecenie zrzucenia i-węzła, którego numer masz wcześniej:
cat <4980758>
za pomocą <
i >
wokół numeru i -węzła.
Jeśli odczytuje losowy tekst, zamknij terminal i otwórz go ponownie. Uruchom debugfs
ponownie i ponownie wydaj open
polecenie.
Teraz możesz spróbować usunąć plik. Może to spowodować poważne uszkodzenie systemu plików.
debugfs: rm [filename]
debugfs: unlink [filename]
debugfs: kill_file [filename]
debugfs: kill_file <inode>
Zauważ, że można to zrobić, nawet jeśli okaże się, że plik nigdy nie miał i-węzła. Wypróbuj polecenia pojedynczo, w kolejności pokazanej powyżej. Wyjdź z debugfs i sprawdź, czy plik istnieje. Jeśli nie, zacznij od nowa, ale postępuj zgodnie z następną instrukcją.
debugfs
jest przeznaczony tylko dla typów systemów plików ext2, ext3 i ext4.
pokaż nam terminal ... zrób to ll | grep panorama
i pokaż nam; dodaj to do swojego pytania ...
Moja sugestia to zrobić jako root rm -f panorama.jpg
.
w rm znalazłem to:
-f, --force
ignore nonexistent files, never prompt
Najpierw zaloguj się jako root sudo -s
Możesz spróbować to zrobić rm -v <file>
i sprawdzić pełne dane wyjściowe, aby zobaczyć, co się dzieje podczas próby usunięcia pliku. Sprawdź opcje polecenia poniżej.
Jeśli to się nie powiedzie, możesz użyć opcji wymuszenia, jak wszyscy mówili. Możesz także spróbować usunąć cały katalog, wymuszając usunięcie rekurencyjne:rm -rfv **full directory address here**
STRESZCZENIE
rm [OPTION]... FILE...
OPIS
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.
OPCJE
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.
Patrząc na zrzuty ekranu, widzę, że masz grupę ustawioną jako root. Spróbuję użyć chown i zobaczę, czy to rozwiąże problem.
sudo chown -hR [username]:[username] /home/[username]
Zastąpienie [nazwa użytkownika] swoją nazwą użytkownika.
Otrzymasz kilka błędów.
Brak drukowania znaków w nazwach plików może powodować takie problemy - jak spacja. Wypróbuj interaktywną opcję rm i powiedz „Y” do pliku, który chcesz usunąć „
rm -i” * pan * ”Zauważ, że * s pasuje do dowolnych znaków (nawet innych niż printint).
Może to być i-węzeł został usunięty, ale nie pozycja katalogu. Spróbuj użyć ls -i, aby zobaczyć i-węzły. fsck system plików, aby naprawić tego rodzaju problem.
Wypróbuj w ten sposób:
cd dir-to-delete
find ./ -exec rm -rf {} \;
Miałem ten sam problem z plikiem utworzonym przez niestandardową bazę internetową EMR (elektroniczna dokumentacja medyczna) pod Chrome. sudo touch /forcefsck
następnie restart dla mnie pracował i aromatycznie usunięty plik. Wzięto pomoc z następujących stron
Linux Mint 18.3 Mój nieistniejący plik to ¨filename.pdf.crdownload¨ Pojawił się na moim pulpicie jako pakiet, tzn. Plik zip w Windows Speak. Na prawdę, kliknąłem prawym przyciskiem myszy, Właściwości, Otwórz za pomocą, który pokazał zero aplikacji, więc zmieniłem go na Otwórz za pomocą „Menedżera archiwów”. Plik natychmiast zniknął z mojego pulpitu. kb