Czy jest jakaś kolejność operacji rm
? Wystąpiłem rm
w dużym katalogu i jestem ciekawy, gdzie powinienem sprawdzić, co mogło zostać usunięte. Czy rm
najpierw działa na plikach, a potem na katalogach? A może opiera się na niektórych informacjach w tabeli i-węzłów?
Specyfikacja: rm z systemu GNU coreutils 8.22: Arch Linux działający na systemie plików beagleboneblack działający na zewnętrznym dysku twardym Seagate (ext4) korzystał z USB 2.0.
Historia:
Przeprowadziłem czyszczenie katalogu i wykonałem
cp -r A/ B/ C/ Dest/
Nieświadomie podążyłem za tym
rm -r A/ B/ C/ Dest/
kiedy chciałem po prostu występować
rm -r A/ B/ C/
Złapałem to i wcisnąłem Ctrl+, Czanim minęło zbyt wiele czasu. W szczególności było to <3 sekundy, ponieważ korzystałem z time
polecenia w połączeniu z rm
& cp
. Wszedłem i zbadałem, Dest/
spodziewając się, że nie będzie on istniał, ale oto był cały i wydawało się, że nie ma na niego wpływu. Jest to nieco zaskakujące, ponieważ A/
B/
C/
były dość małe. Może w sumie 100–200 MB. Dest/
jest jednak po prostu nieśmiały 1 TB. Wykonanie ls
na Dest / pokazało, że na obu końcach alfabetu były zarówno pliki, jak i katalogi (np. AFile.txt
.... .... Zoo.txt
).
Czy miałam szczęście i anulowałam to, rm
co spowodowało spustoszenie w moim katalogu Dest /? Czy to rm
naprawdę takie powolne (na szczęście!)?
Jeśli nie, w jaki sposób można rm
rekurencyjnie usuwać takie rzeczy, że mogę zgadnąć, co mogło zostać utracone?
Naprawdę nie oczekuję, że odzyskam to, co mogłem stracić, po prostu ciekawy, co potencjalnie zostało zdmuchnięte.