Co się stanie, jeśli usuniesz plik, gdy był przenoszony z jednego systemu plików (ext4) do innego (NTFS)?

0

to mnie wkurza od wczoraj. Korzystałem z plików GNOME (Nautilus), aby przenieść plik wideo z folderu „Pobrane” na dysk NTFS. Teraz, kiedy wyciąłem i wkleiłem plik, natychmiast pojawił się w docelowym miejscu docelowym (Oddzielny system plików NTFS, używając ntfs-3g na tym samym dysku twardym). Wiem, że kiedy przenosisz pliki z jednego systemu plików do innego, to zasadniczo kopiuje, a następnie usuwa plik (popraw mnie, jeśli się mylę). Ale „przesuwam + usuwam” plik w pośpiechu ze źródła i chwilę później odkryłem, że Menedżer plików był nadal przenoszę plik do systemu plików NTFS, nawet po usunięciu pliku ze źródła i zniknięciu. Gdy pasek ruchu osiągnął 100%, dał mi błąd . Ale sprawdziłem docelowe miejsce docelowe, a plik nadal został przeniesiony do miejsca docelowego i grał dobrze.

Co się tu naprawdę wydarzyło? Czy operacje na plikach w systemie Linux działają następnie, aby nie przerywać operacji przenoszenia? Czy plik, który został przeniesiony do mojego docelowego miejsca docelowego, byłby uszkodzony? czy błąd był spowodowany ostatnią operacją kopiowania podczas przenoszenia pliku, ponieważ operacja przenoszenia i tak usunęłaby plik?

arslix
źródło

Odpowiedzi:

2

Usunięcie pliku nie powoduje wyczyszczenia jego danych (zawartości) - usuwa tylko metadane z informacją, że plik tam jest i oznacza odpowiednie miejsce na dysku jako „wolne do późniejszego użycia”.

Ale co ważniejsze, system operacyjny będzie przechowywać wspomniane metadane tak długo, jak będzie to potrzebne. Nawet po rozłączeniu pliku z jego katalogu (lub ze wszystkich katalogów, jeśli miał wiele dowiązań twardych), system operacyjny nie usunie rzeczywistego pliku, dopóki przynajmniej jeden proces go otworzy. Tak więc plik nadal tam jest - po prostu bezimienny (ale nadal zajmuje jego miejsce) podczas reszty operacji kopiowania.

I nie powiedzieć „operacji kopiowania”, ponieważ komputery nie mogą fizycznie przenieść dane między dyskami - Pierwszy plik jest kopiowany do miejsca przeznaczenia, wówczas oryginalny plik zostanie usunięty. Właśnie dlatego pojawił się komunikat o błędzie: Twój menedżer plików używa dwóch oddzielnych operacji (kopiowania i usuwania); kopiowanie powiodło się, ale usunięcie nie powiodło się (ponieważ już je usunąłeś).

grawitacja
źródło
2

W systemie Linux w większości przypadków można usunąć otwarte pliki. To sprawi, że plik zniknie z list katalogów. Miejsce zajmowane przez plik zostanie jednak zwolnione dopiero wtedy, gdy plik nie będzie już używany.

To, co nie powiodło się w twoim przypadku, było tylko ostatnim krokiem operacji przenoszenia: Usunięcie pliku / katalogu źródłowego.

Daniel B.
źródło