Shell Geek Preimenovanje više datoteka odjednom
Recimo da imate direktorij sa stotinama datoteka s pogrešnim nazivima datoteka, a želite zamijeniti svaki naziv datoteke koji sadrži test s štap. (ovo je izmišljeni primjer). To možemo jednostavno učiniti pomoću naredbe "za" u bash-u, u kombinaciji s malo bash dobrote. Danas ćemo naučiti kako zamijeniti tekst u varijabli u petlji for.
Naredba "za" radi ovako:
za var in; do $ var; učinjeno
Možete zamijeniti s bilo kojim uzorkom podudaranja datoteka, kao što je * ili * .txt, i možete ga zamijeniti s bilo kojom linux naredbom. Naredba će se izvoditi u slijedu na svakoj datoteci koja odgovara obrascu podudaranja datoteka.
Ovo je mjesto gdje rukovanje bash varijablama čini ga još zanimljivijim. Umjesto da radimo nešto poput "mv $ var", možemo zamijeniti tekst u nazivu datoteke pomoću ove sintakse:
$ Var / originaltext / replacetext
Sada, ako pokrenemo ovu naredbu u našem direktoriju:
za f in *; učinite mv $ f $ f / test / prod
Za svaku datoteku koja odgovara *, bash će izvršiti naredbu sličnu ovome:
mv test.config prod.config
Otkrio sam da je znanje o ljusci od neprocjenjive važnosti pri administriranju poslužitelja ili samo za upravljanje zbirkom datoteka te mi je uštedjelo vrijeme onoga što bi inače bilo ručno.
I da, shvaćam da postoji niz alata koji mogu izvršiti preimenovanje više datoteka.