Gotovo ste ob neki priložnosti preverili, da imate v več mapah neuporabno vrsto datoteke, ki zavzame malo prostora, vendar je preprosto ne želite v računalniku. Na primer, v macOS so ustvarjene nekatere datoteke .DS_Store ki shranjujejo informacije o ikoni mape, njeni velikosti in položaju, v sistemu Windows pa so desktop.ini, ki so enakovredni. Kaj storimo, če imamo imenik poln podimenikov in želimo izbrisati te ali druge vrste datotek? Kaj moramo storiti je rekurzivno izbriši Vsak od njih.
To lahko storimo z vsemi vrstami datotek. Če imamo na primer trdi disk, poln glasbe, imamo predvajalnik, ki je naložil ovitke in ne želimo, da se shranijo, lahko z istim ukazom, ki ga bomo podrobneje opisali spodaj, izbrišemo. Seveda ob upoštevanju, da bomo s terminalom rekurzivno izbrisali datoteke imenikov in njihove podimenike in da bodo te za vedno izgubljene, ne boli biti previden in / ali naredite test, preden izbrišete vse, kar želimo izbrisati.
Datoteke vrste rekurzivno izbrišite s terminala
Ukazi za primer datotek macOS .DS_Store bi bili naslednji:
cd ruta/a/directorio find . -name '*.DS_Store' -type f -delete
Od prejšnjih ukazov nas bo prvi postavil v mapo, kjer želimo začeti, torej tisto, ki vsebuje vse datoteke .DS_Store, ki jih želimo izbrisati. Druga je tista, ki bo iz datoteke .DS_Store izbrisala vse datoteke prva mapa in njene podmape ali imenike. Če želimo fotografije izbrisati iz prej omenjenih glasbenih map, moramo med narekovaje postaviti vrsto razširitve, na primer '* .jpg'.
Če sem iskren 100%, bom to storil dan, ko preneham uporabljati Cantato kot privzeti predvajalnik glasbe. Cantata ustvari in skrije podatkovne datoteke z istim imenom kot pesmi, ki imajo pred seboj piko in poševnico (na primer ._Song). Ko ga potrebujem, bo ukaz, ki ga bom moral uporabiti najti. -ime '._ *' -tip f -delete.
Vam je ta mali vodnik pomagal pri rekurzivnem brisanju datotek s terminala?
Hvala, vendar je v vaši kodi napaka. Uporabiti morate regularni izraz '*', to je '* .DS_STORE'. Priporočam, da jo popravite. No, za tiste, ki manj poznajo bash, koda, ki ste jo dali, ne bo delovala. Pozdravi!