Nie można usunąć pliku - nie ma takiego pliku ani katalogu

12

Raz go usunąłem, ale duch wciąż tam jest :)

Jak mogę usunąć plik, który tam jest, ale system mówi, że go nie ma?

Karta Uprawnienia - próbowałem ją zmienić, ale zresetuje się ona automatycznie Tak się dzieje po kliknięciu „Usuń”

Valeriu
źródło
To jest ostrzeżenie. Co to znaczy, jeśli wybierzesz „Usuń”?
Marty Fried
Kliknij plik prawym przyciskiem myszy, wybierz Właściwości, otwórz kartę Uprawnienia. Zrób zrzut ekranu i opublikuj go tutaj.
Eric Carvalho,
Czy możesz przenieść inne pliki do kosza? Czy usuwany plik ma ten sam system plików, co domowy system plików? Czy istnieje katalog ~ / .Trash /?
John S Gruber,
John, mogę normalnie przenosić inne pliki do kosza, tylko ten sprawia mi kłopoty.
Valeriu
Czy próbowałeś go usunąć z terminala? sudo rm panorama.jpg
David M. Sousa

Odpowiedzi:

3

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.

Marco
źródło
najłatwiejsze rozwiązanie tutaj, jeśli faktycznie pozbędziesz się całego problemu.
wyłączenie oświetlenia
2

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:

  1. Wyszukaj PROMOCJA POLECENIA, która: cmdkliknij prawym przyciskiem myszy -> Uruchom jako administrator.
  2. chkdsk /f/x D: (gdzie D jest literą dysku).
  3. Naciśnij Y, jeśli prosi o T / N
  4. Sprawdź, czy na dysku nie ma pliku, który chcesz usunąć. Może jest usunięty lub możesz go usunąć.

100% pracy

użytkownik2102442
źródło
2

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 -liaby 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 -liwyglą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 .

  1. Zacznij debugfsjako 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/sda1z odpowiednim urządzeniem blokującym dla twojej partycji.

  2. 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.

  3. Jeśli odczytuje losowy tekst, zamknij terminal i otwórz go ponownie. Uruchom debugfsponownie i ponownie wydaj openpolecenie.

  4. 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ą.

Wykonaj kopię zapasową, jeśli to możliwe!

nanofarad
źródło
Nie działa w moim systemie plików NTFS
Suici Doga
@ SuiciDoga debugfsjest przeznaczony tylko dla typów systemów plików ext2, ext3 i ext4.
nanofarad
0

pokaż nam terminal ... zrób to ll | grep panoramai 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
maniat1k
źródło
Próbowałem wiele razy, zarówno z -f, jak i --force To nie pomogło!
Valeriu,
0

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**



Z Przewodnika poleceń UNIX:

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.
Sinan Bolel
źródło
0

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.

przykład

mywebslave
źródło
mywebslave, zrobiłem to, co zasugerowałeś, pokazałem mi to samo „Odmowa zezwolenia” jak na twoim zrzucie ekranu. Nadal nie mogę usunąć tego cholernego pliku.
Valeriu
0

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.

ubfan1
źródło
Zabawne! Oto wynik: pastebin.com/kjCyX0yB
Valeriu
0

Wypróbuj w ten sposób:

cd dir-to-delete
find ./ -exec rm -rf {} \;
Dmitrij Sandałow
źródło
0

Jak powiedział ubfan1, niedrukowalne znaki w nazwach plików mogą powodować takie problemy.

  1. dotknąć
  2. rm

działało dla mnie, ponieważ „dotyk” zastąpił uszkodzony plik.

Amit_sh
źródło
0

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

Kenneth Browne
źródło