If-Koubou

Shell Geek: Pārdēvēt vairākus failus vienlaicīgi

Shell Geek: Pārdēvēt vairākus failus vienlaicīgi (Kā)

Pieņemsim, ka jums ir katalogs ar simtiem failu ar nepareiziem failu nosaukumiem, un jūs vēlaties aizstāt visus faila nosaukumus, kas satur pārbaude ar prod. (šis ir veidots piemērs). Mēs to varam viegli izdarīt ar "for" komandu bash, kopā ar mazliet bash labestību. Šodien mēs uzzināsim, kā aizstāt tekstu ar mainīgo ciklā.

Komandu "par" darbojas šādi:

par var var; do $ var; paveikts

Jūs varat nomainīt ar jebkuru failu atbilstības modeli, piemēram, * vai * .txt, un jūs varat to nomainīt ar jebkuru komandu linux. Komanda tiks palaista secīgi katrā failā, kas atbilst faila atbilstības shēmai.

Tas ir tas, ka apstrāde ar bash mainīgumu padara to vēl interesantāku. Tā vietā, lai vienkārši darītu kaut ko līdzīgu "mv $ var", mēs varam aizstāt tekstu faila nosaukumā, izmantojot šo sintaksi:

$ var / originaltext / replacetext

Tātad tagad, ja mēs palaistu šo komandu mūsu direktorijā:

par f in *; do mv $ f $ f / test / prod; pabeigts

Katram failam, kas ir saskaņots ar *, bash izpildīs līdzīgu komandu:

mv test.config prod.config

Es atklāju, ka, zinot čaulu, ir nenovērtējama, pārvaldot serverus vai vienkārši pārvaldot failu kolekciju, un esmu ietaupījis stundas par to, kas citādi būtu manuāls darbs.

Un jā, es saprotu, ka ir vairāki rīki, kas var veikt vairāku failu pārdēvēšanu.