If-Koubou

Shell Geek: Preimenuj više datoteka odjednom

Shell Geek: Preimenuj više datoteka odjednom (Kako da)

Pretpostavimo da imate direktorij sa stotinama datoteka s pogrešnim nazivima datoteka i želite zamijeniti svaki naziv datoteke koji sadrži test s štap, (ovo je izuzetan primjer). To lako možemo učiniti s "for" naredbom u bash, u kombinaciji s malo bajedosti. Danas ćemo saznati kako zamijeniti tekst u varijabli u obliku petlje.

Zapovjed "za" radi ovako:

za var in, učinite $ var; učinjeno

Možete zamijeniti s bilo kojim oblikom podudaranja datoteka, kao što je * ili * .txt, a možete zamijeniti s bilo kojom linux komandom. Naredba će se pokrenuti u nizu na svakoj od datoteka podudaraju se s podudaranjem datoteka.

Ovo je mjesto gdje bash upravljanje varijablama čini još zanimljivijim. Umjesto da radimo nešto poput "mv $ var", možemo zamijeniti tekst u nazivu datoteke pomoću ove sintakse:

$ Var / originaltext / replacetext

Dakle sada, ako pokrenemo ovu naredbu na našem direktoriju:

za f in *, učinite mv $ f $ f / test / prod; učinjeno

Za svaku datoteku podudarnu s *, bash će izvršiti sličnu naredbu:

mv test.config prod.config

Otkrio sam da je poznavanje ljuske neprocjenjivo kada se upravlja poslužiteljima ili samo za upravljanje zbirkama datoteka i spasio mi je sati onoga što bi inače bilo ručno.

I da, shvaćam da postoji niz alata koji mogu ostvariti preimenovanje više datoteka.