Jestem w stanie użyć następujących do usunięcia katalogu docelowego i rekurencyjnie wszystkich jego podkatalogów i zawartości.
find '/target/directory/' -type d -name '*' -print0 | xargs -0 rm -rf
Nie chcę jednak, aby katalog docelowy został usunięty. Jak mogę usunąć tylko pliki z celu, podkatalogów i ich zawartości?
linux
macos
command-line
terminal
Michael Prescott
źródło
źródło
Jeszcze trzy opcje.
Używaj
find
z-mindepth 1
i-delete
:2. Użyj
find
, ale z plikami, nie katalogami. Pozwala to uniknąć koniecznościrm -rf
:3. Śmiało i usuń katalog nadrzędny, ale utwórz go ponownie. Możesz utworzyć funkcję bash, aby to zrobić za pomocą jednego polecenia; oto prosty jednoliniowy:
źródło
Co powiesz na
Jeśli mogą istnieć pliki zaczynające się od. w katalogu docelowym.
Ta sekunda dopasuje wszystko, zaczynając od., Oprócz. i .. Nie powiedzie się na nazwach takich jak .a, ale to nie jest bardzo powszechne. W razie potrzeby można go dostosować, aby obejmował wszystkie przypadki.
źródło
źródło