Z korzyścią dla czytelników:
Uważaj rm -rf
w takim przypadku! Może stwarzać problemy gdzie indziej, na wypadek, gdyby był to udział sieciowy! Zostałeś ostrzeżony!
W prawie wszystkich przypadkach, jeśli directory
wydaje się być pusty, użyj rmdir directory
lub może sudo rmdir directory
. Nie używaj rm
(lub del
w systemie Windows). Jeśli to nie zadziała, musisz dowiedzieć się, co blokuje to żądanie, napraw je, a następnie ponów próbę rmdir
.
Proszę zauważyć, że nie znam OS-X, ale myślę, że rzeczy są bardzo podobne do zachowania Unix / BSD.
Jest bardzo prawdopodobne, że dany katalog był po prostu punktem montowania (z pliku enfs) lub znajdował się w punkcie montowania, który stał się tylko do odczytu lub utknął w jakimś niewłaściwym stanie (co uniemożliwiło usunięcie katalogu). Jeśli wymusisz teraz usunięcie katalogu, mogą się zdarzyć bardzo złe rzeczy.
W dobrym przypadku katalog był naprawdę pusty, więc usunięcie go (zniszczenie mounta itp.) Nie spowodowało dalszych szkód. W złym przypadku nie był pusty, po prostu wyglądał, co oznacza, że zniszczyłeś coś, czego być może nie chciałeś zabić. Wszystko zależy od typu montażu, używanych sterowników itp. Pp.
Jeśli rzeczy są wdrażane dość dobrze, zwykle nic złego nie powinno się wydarzyć. Jednak nie jest to normalny przypadek. Sprawy są już w dziwnym stanie, co oznacza: Coś jest nie tak, więc lepiej nie próbuj ich mieszać! Jeśli coś pęknie, każde niewłaściwe dotknięcie może go złamać.
Na przykład, jeśli osiągniesz warunek wyścigu w udziale sieciowym, być może rm -rf
usuniesz dane, które zostały skopiowane do udziału przez kogoś innego.
Jednak rmdir
gwarantuje, że nigdy nie zaszkodzi, oprócz usunięcia naprawdę pustych katalogów. Jest to nawet prawdą w przypadku NFS, ponieważ NFS gwarantuje tylko naprawdę atomowe zachowanie na mkdir
i rmdir
, ale nigdzie indziej.
FYI:
Możesz wykryć punkt montowania za pomocą narzędzia mountpoint directory
. Alternatywnie zajrzyj do wyjścia mount
i spróbuj tam znaleźć swoje wierzchowce. Ale uwaga, przynajmniej pod Linuksem może to kłamać. Korzystanie z mountpoint
narzędzia jest bardziej niezawodne, ale mniej wygodne.
W takim przypadku znalazłeś punkt montowania, możesz odmontować go, a następnie usunąć katalog, jest to następująca sekwencja:
umount directory
rmdir directory
W razie potrzeby użyj sudo
jak zwykle.
Uwagi:
Udziały sieciowe mogą odmawiać rmdir
(i cokolwiek innego) z powodu praw dostępu.
Wadliwe systemy plików mogą odmówić rmdir
, w zależności od strategii niepowodzenia. Być może w takim przypadku zobaczysz rozsądną wiadomość, a może nie.
Pod Linuksem (i prawdopodobnie dowolnym współczesnym systemem operacyjnym) możesz również ograniczyć dostęp przy użyciu różnych środków (np. Montowanie czegoś tylko do odczytu, możliwości jak w SeLinux itp.). Oznacza to, że nie widzisz, że jest to punkt montowania i nie widzisz nic złego, ale po prostu nie działa. W takim przypadku musisz poszukać innego powodu, który może być bardzo głęboko ukryty w systemie operacyjnym. To zależy od narzędzia, jeśli zobaczysz jakiś rozsądny komunikat o błędzie. Być może zajrzyj także do syslog / kernel-log jak dmesg
w Linuksie (przepraszam, nie znam odpowiednika OS-X).
Pamiętaj, że obowiązkowe blokowanie plików może być również źródłem. Chociaż jest to normalne w systemie Windows, zwykle nie jest to normalny przypadek Uniksa i nigdy nie słyszałem tego w przypadku katalogów. Obowiązkowe blokady plików są objęte POSIX, ale są opcjonalne.
Dość często w takich przypadkach dany katalog znajduje się w innym systemie plików niż myślałeś. Możesz dowiedzieć się, które z poleceniem df directory
(myślę, że to samo w OS-X).
Możesz głębiej sprawdzić za pomocą narzędzi takich jak stat
lub statfs
w katalogu. Są to jednak nieco niski poziom dla normalnych ludzi i dość często takie narzędzia są dobrze ukryte przed normalnymi użytkownikami.
Katalogi mogą mieć pliki o śmiesznych nazwach. Jak plik, który natychmiast kasuje wyjście terminala, więc wygląda na to, że go nie ma. Spróbuj czegoś takiego ls -al | less
lub użyj czegoś takiego jak MidnightCommander mc
.
Istnieje mnóstwo innych możliwości, w tym robaków, haxorów, kosmitów, a może bardziej egzotycznych rzeczy, takich jak wróżki. Ale zwykle nie jest mądre, aby zacząć tam szukać, zamiast tego najpierw spróbuj znaleźć błąd po swojej stronie, ponieważ „errare humanum est”.
rmdir
- ale często jest to przyczyną, dla której nie można odmontować woluminu).