Noteikti dažos gadījumos esat pārliecinājies, ka vairākās mapēs jums ir nederīgs faila veids, kas aizņem maz vietas, bet jūs to vienkārši nevēlaties savā datorā. Piemēram, MacOS tiek izveidoti daži faili .DS_Store kas saglabā informāciju par mapes ikonu, tās lielumu un atrašanās vietu, un sistēmā Windows ir līdzvērtīgi desktop.ini. Ko mēs darām, ja mums ir direktorijs, kas ir pilns ar apakšdirektorijiem, un mēs vēlamies izdzēst šos vai cita veida failus? Tas, kas mums jādara, ir rekursīvi izdzēst Katrs no viņiem.
To mēs varam darīt ar visu veidu failiem. Piemēram, ja mums ir pilns cietais disks ar mūziku, mums ir atskaņotājs, kas ir lejupielādējis vākus, un mēs nevēlamies, lai tie tiktu saglabāti, mēs varam izmantot to pašu komandu, kuru mēs detalizēti aprakstīsim tālāk, lai tos izdzēstu. Protams, ņemot vērā to, ka mēs terminālī rekursīvi izdzēsīsim direktoriju failus un to apakšdirektorijus un ka tie tiks neatgriezeniski zaudēti, tas nekaitē būt uzmanīgam un / vai veiciet pārbaudi, pirms izdzēšat visu, ko vēlamies izdzēst.
Rekursīvi izdzēsiet šāda veida failus no termināla
MacOS .DS_Store failu piemēru komandas būtu šādas:
cd ruta/a/directorio find . -name '*.DS_Store' -type f -delete
No iepriekšējām komandām pirmā mūs ievietos mapē, kurā mēs vēlamies sākt, tas ir, tajā, kurā ir visi .DS_Store faili, kurus mēs vēlamies izdzēst. Otrais ir tas, kas izdzēsīs visus .DS_Store failus no pirmā mape un tās apakšmapes vai direktoriji. Ja mēs vēlamies izdzēst fotoattēlus no iepriekš minētajām mūzikas mapēm, paplašinājuma veids ir jāievieto starp pēdiņām, piemēram, '* .jpg'.
Lai būtu 100% godīgi, tas ir kaut kas, ko es darīšu dienā, kad pārtraucu lietot Cantata kā noklusējuma mūzikas atskaņotāju. Kantāte izveido un slēpj informācijas failus ar tādu pašu nosaukumu kā dziesmām, kurām priekšā ir punkts un zema josla (piemēram, ._Dziesma). Kad man tas būs vajadzīgs, būs komanda, kas man būs jāizmanto atrast. -nosaukums '._ *' -type f -dzēst.
Vai šī mazā rokasgrāmata ir palīdzējusi jums rekursīvi izdzēst failus no termināla?
Paldies, taču jūsu kodā ir kļūda. Jums jāizmanto regulārā izteiksme '*', tas ir '* .DS_STORE'. Es iesaku jums to labot. Nu, tiem, kam ir mazāk zināšanu par bash, kods, kuru jūs devāt, nedarbosies. Sveiciens!