KategorieSystemy operacyjne

[Bash][Linux] Jak usunąć wszystkie katalogi lub pliki o określonej nazwie z drzewa katalogów ?

Powyższe zadanie dzielimy sobie na dwa etapy, pierwszy to znalezienie wszystkich katalogów lub plików w danej lokalizacji, drugi ich usunięcie.

Aby znaleźć wszystkie katalogi o nazwie „.svn” w określonej lokalizacji użyjemy polecenia find

find /home/test -name ".svn"

Powyższy przykład wyszuka katalogi oraz pliki o nazwie „.svn” w lokalizacji „/home/test”, czyli w katalogu użytkownika test.

Do usuwania plików oraz katalogów służy polecenie rm. Polecenie zostanie wzbogacone o flagę „-r”, dzięki której zostanie usunięta cała zawartość znajdująca się w katalogu (łącznie z podkatalogami). Dodamy także flagę „-f”, aby pominąć ewentualne pytania oraz zignorować nieistniejące pliki. Tak więc druga część polecenia wygląda następująco:

rm -rf

Ostatni etap to połączenie obu poleceń i do tego celu posłuży nam xargs, które jest używane do budowania i wykonywania poleceń ze standardowego wejścia z którego otrzymamy listę katalogów do usunięcia.

find /home/test -name ".svn"|xargs rm -rf

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.