Jak usunąć katalog z Terminalu bez znajomości jego nazwy?


1

Mam katalog, który chcę usunąć. Nazwa katalogu to losowy ciąg liter i cyfr. Znam ścieżkę do jej katalogu nadrzędnego, więc jak rekurencyjnie usunąć zawartość tego katalogu?

W katalogu nadrzędnym nie ma innych plików / katalogów.

Wiem, że muszę zrobić coś takiego:

$ rm -r path_to_dir

ale ponieważ nie mam nazwy katalogu, nie jestem pewien, czy to zadziała.


Czy istnieje powód, dla którego nie można usunąć folderu nadrzędnego, a następnie go odtworzyć?
soandos

@soandos Hahaha teraz czuję się głupio: $
stackErr

Odpowiedzi:


1

Zarozumiały path_to_dir jest ścieżką do katalogu nadrzędnego, możesz po prostu to zrobić:

rm -r path_to_dir/*

Gwiazdka ( * ) jest symbolem wieloznacznym, więc rekurencyjnie usuwa wszystko w katalogu nadrzędnym. Jest to łatwiejsze niż usunięcie i ponowne utworzenie całego katalogu nadrzędnego, zwłaszcza jeśli na przykład ma pewne uprawnienia niestandardowe, które chcesz zachować.


rmdir path_to_parent / * działałby i jest bezpieczniejszy, ponieważ usuwa tylko puste foldery, ale nie rekursywnie (ponieważ folder z folderem w nim nie jest pusty).
Ярослав Рахматуллин

@ Ярослав Рахматуллин to nie działa dla mnie, ponieważ katalog zawiera inne pliki i foldery.
stackErr

0

Powinieneś spróbować zrobić coś takiego:

rm -rf path_name
mkdir path_name


Przyjmuję odpowiedź Indreka, ponieważ jego rozwiązanie jest tym, czego szukałem.
stackErr

@Indrek ma czystsze rozwiązanie (choć moje będzie działać)
soandos
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.