Muszę znaleźć wszystkie pliki zaczynające się od nazwy NAME
w drzewie katalogów i usunąć wszystkie te pliki za pomocą jednego polecenia powłoki.
36
aby usunąć wszystkie pliki, których nazwa ma nazwę --- możesz użyć
find -name . 'name*' -exec rm {} \;
grep
ma-exec
przełącznik?Usuń wszystkie pliki w bieżącym katalogu i jego podkatalogach, w których nazwa pliku zaczyna się od „foo”:
Uwaga: używaj ostrożnie - najpierw wykonaj kopię zapasową - najpierw wykonaj próbę próbną, np
poda ci tylko nazwy plików, które zostaną usunięte.
źródło
find . -type f -name foo\* -delete
załatwiło sprawęPróbowałem w ten sposób, że to działa dla mnie spróbuj poniżej polecenia.
tutaj „Przykład” to tekst wspólny dla wszystkich plików.
źródło
Możesz użyć
find
:źródło
Z
globstar
opcją (włącz za pomocąshopt -s globstar
):**/
rozszerza się do./
,*/
,*/*/
,*/*/*/
itd. Jeśli masz katalogów nazwy rozpoczynająceNAME
komenda będzie skarżą się, żerm
nie można usunąć katalogi, ale to wszystko.Zauważ, że może to napotkać ograniczenia długości linii poleceń, jeśli glob pasuje do wielu plików.
Alternatywnie, przy jak najmniejszej liczbie wywołań,
rm
jak to możliwe, ale bez ograniczeń długości linii poleceń:(Zauważ, że
+
zamiast\;
zamykać-exec
instrukcję).źródło
find . -name 'foo'* -type f -delete
wydaje się najprostszą odpowiedzią.Możesz uruchomić to bez
-delete
flagi wcześniej, aby zobaczyć, które pliki zostaną usunięte.źródło
Wyszukaj numer „i-węzła” pliku / folderu, a następnie usuń, używając numeru i-węzła. Poniżej znajduje się przykład:
źródło