2012-10-02 12:18:00 +0000 2012-10-02 12:18:00 +0000
39
39

Jak usunąć wszystkie pliki zaczynające się od określonego ciągu znaków w Linuksie

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.

Odpowiedzi (7)

68
68
68
2012-10-02 12:19:23 +0000

Usuń wszystkie pliki w bieżącym katalogu i jego podkatalogach, których nazwa zaczyna się od “foo”:

$ find . -type f -name foo\* -exec rm {} \;

Uwaga: używaj z rozwagą - najpierw zrób kopię zapasową - wykonaj też najpierw próbę na sucho, np.

$ find . -type f -name foo\*

poda ci tylko nazwy plików, które zostaną usunięte.

29
29
29
2016-07-28 10:51:24 +0000

Próbowałem w ten sposób to działa dla mnie spróbuj poniższe polecenie.

rm -rf Example*

tutaj “Przykład” jest tekstem, który jest wspólny dla wszystkich plików.

11
11
11
2012-10-02 12:22:38 +0000

Możesz użyć find:

find . -name "name*" -exec rm {} \;
3
3
3
2017-02-24 03:17:48 +0000

Z opcją globstar (włącz z shopt -s globstar):

rm -f **/NAME*

**/ rozszerza się do ./, */, */*/, */*/*/ itd. Jeśli masz nazwę katalogu zaczynającą się od NAME, polecenie będzie narzekać, że rm nie może usuwać katalogów, ale to wszystko.

Zauważ, że może to napotkać ograniczenia długości wiersza poleceń, jeśli glob pasuje do wielu plików.

Alternatywnie, z jak najmniejszą liczbą wywołań rm, ale nie podlega ograniczeniom długości wiersza poleceń:

find . -type f -name 'NAME*' -exec rm -f {} +

(Zwróć uwagę na + zamiast \; do zamknięcia instrukcji -exec).

3
3
3
2012-10-02 12:48:10 +0000

Aby usunąć wszystkie pliki, które mają nazwę, można użyć następującego polecenia:

find . -name 'name*' -exec rm {} \;
2
2
2
2018-08-27 16:28:09 +0000

find . -name 'foo'* -type f -delete wydaje się być najprostszą odpowiedzią.

Możesz uruchomić to bez flagi -delete wcześniej, aby zobaczyć, które pliki zostaną usunięte.

-1
-1
-1
2015-03-30 06:04:34 +0000

Wyszukaj numer “Inode” pliku/folderu, a następnie usuń go używając numeru inode. Poniżej znajduje się przykład:

ls -il
3407873 drwxr-xr-x. 2 root root 4096 Mar 30 07:49 –p

find . -inum 3407873 -exec rm -rf {} \;