Na potrzeby tego pytania „duży katalog” oznacza na przykład repozytorium git jądra systemu Linux lub źródło Chromium.
Jeśli mam rm -rf
taki duży katalog z powłoki, zostanie on usunięty w ciągu zaledwie kilku sekund.
Jeśli najpierw przeniosę go do kosza, a następnie opróżnię kosz, pierwsza operacja zajmie mniej niż sekundę, a następnie faktyczne usunięcie zajmie kilka minut (mówimy o podwójnych liczbach).
Dlaczego opróżnianie kosza jest tak wolne? Co robi, gdy mówi „przygotowuje się”. Ile przygotowań zajmuje uruchomienie rm -rf ~/.local/share/Trash/
?
libnautilus-private/nautilus-file-operations.c
do źródła (apt-get source nautilus
). Nie mam jednak pilności i cierpliwości do czytania C. Interesujące pytanie. +1rm -rf ~/.local/share/Trash
może być szybszy. Zobacz askubuntu.com/a/468722/2273Odpowiedzi:
Kiedy pojawia się pierwsza operacja, po prostu przenosi pliki do kosza.
Kiedy „kosz” tych plików, ładuje cały plik drzewa do pamięci, a następnie usuwa każdy plik jeden po drugim. Dzięki temu obliczenia czasowe określają, ile czasu zajmuje usunięcie pliku, ile plików ma zostać usuniętych, jak duże są te pliki, chociaż większość parametrów nie jest tutaj używanych, i pozwala nacisnąć ten mały czerwony krzyżyk, aby zatrzymać proces.
Dlatego zawsze usuwam z powłoki
źródło