Sigurno ste nekom prilikom provjerili imate li beskorisnu vrstu datoteke u nekoliko mapa, koja zauzima malo prostora, ali je jednostavno ne želite na računalu. Na primjer, u macOS-u se stvaraju neke datoteke .DS_Trgovina koji spremaju informacije o ikoni mape, njezinoj veličini i položaju, a u sustavu Windows postoje ekvivalentni desktop.ini. Što ćemo učiniti ako imamo direktorij pun poddirektorijuma i želimo izbrisati ove ili druge vrste datoteka? Ono što moramo učiniti je rekurzivno izbrisati Svaki od njih.
To možemo učiniti sa svim vrstama datoteka. Primjerice, ako imamo tvrdi disk pun glazbe, imamo uređaj koji je preuzeo naslovnice i ne želimo ih spremati, možemo ih upotrijebiti istom naredbom koju ćemo detaljno opisati u nastavku kako bismo ih izbrisali. Naravno, uzimajući u obzir da ćemo terminalom rekurzivno brisati datoteke direktorija i njihove poddirektorije i da će one zauvijek biti izgubljene, ne škodi biti oprezan i / ili napravite test prije brisanja svega što želimo izbrisati.
Rekurzivno brisanje datoteka tipa s terminala
Naredbe za primjere macOS .DS_Store datoteka bile bi sljedeće:
cd ruta/a/directorio find . -name '*.DS_Store' -type f -delete
Od prethodnih naredbi, prva će nas smjestiti u mapu u kojoj želimo započeti, odnosno onu koja sadrži sve datoteke .DS_Store koje želimo izbrisati. Druga je ona koja će izbrisati sve datoteke .DS_Store iz prva mapa i njezine podmape ili direktorija. Ako želimo izbrisati fotografije iz prethodno spomenutih glazbenih mapa, moramo dodati tip nastavka između navodnika, kao što je '* .jpg'.
Da budem iskren 100%, to ću učiniti onog dana kad prestanem koristiti Cantatu kao zadani glazbeni player. Cantata stvara i skriva datoteke s informacijama s istim nazivom kao i pjesme koje ispred sebe imaju točku i nisku traku (na primjer ._Pjesma). Kad mi zatreba, naredba koju ću morati upotrijebiti bit će pronaći. -ime '._ *' -tip f -brisati.
Je li vam ovaj mali vodič pomogao da rekurzivno izbrišete datoteke s terminala?
Hvala, ali u vašem je kodu pogreška. Morate upotrijebiti regularni izraz '*', odnosno '* .DS_STORE'. Preporučujem da to ispravite. Pa, onima koji imaju manje znanja o bashu, kod koji ste dali neće uspjeti. Pozdrav!