Shell Geek: korraga mitme faili ümbernimetamine

Shell Geek: korraga mitme faili ümbernimetamine
Shell Geek: korraga mitme faili ümbernimetamine

Video: Shell Geek: korraga mitme faili ümbernimetamine

Video: Shell Geek: korraga mitme faili ümbernimetamine
Video: CS50 2014 - Week 8 - YouTube 2024, November
Anonim

Oletame, et teil on kataloog, millel on sadade valede failinimede failid, ja soovid asendada kõik failinimed, mis sisaldavad test koos prod. (see on näide). Me võime kergesti seda teha käsuga "for" bash, koos natuke bash heast. Täna õpime, kuidas asendada tekst loendis muutujaga.

Käsk "for" töötab järgmiselt:

for var in ;do $var;done

Võite asendada mis tahes faili vastavuse mustriga, näiteks * või *.txt, ja saate asendada mis tahes Linuxi käsuga. Käsk käivitatakse järjest iga faili vastavusmustri abil sobitatud failiga.

See on koht, kus bash muutuja käitlemine muudab selle veelgi huvitavamaks. Selle asemel, et lihtsalt midagi teha nagu "mv $ var", võime asendada teksti failinimega, kasutades seda süntaksit:

${var/originaltext/replacetext}

Nüüd, kui käitame selle käskluse meie kataloogis:

for f in *;do mv $f ${f/test/prod};done

Iga faili * jaoks sobitatud failiga käivitab bash sarnase käskluse:

mv test.config prod.config

Ma leidsin, et koopia tundmine on hindamatu serverite haldamisel või failide kogumise haldamiseks ning on salvestanud mulle tunde, mis oleks muidu olnud käsitsi töötamine.

Ja jah, ma saan aru, et on mitmeid tööriistu, mis võimaldavad mitme faili ümbernimetamist.

Soovitan: