Tegyük fel, hogy van olyan könyvtár, amelyben több száz olyan fájl található, amelyeknek nem megfelelő neve van, és minden olyan fájlnév helyettesíteni szeretné teszt val vel döf. (ez egy kitalált példa). Könnyen megtehetjük ezt a "for" paranccsal a bash-ben, egy kis bash-jósággal kombinálva. Ma megtudhatjuk, hogyan helyettesíthetjük a szöveget egy változóban a for loop-ban.
A "for" parancs így működik:
for var in ;do $var;done
Lecserélheti
Ez az, ahol a bash változókezelés teszi még érdekesebbé. Ahelyett, hogy "mv $ var" -t szeretne csinálni, helyettesíthetjük a szöveget a fájlnévben ezzel a szintaxissal:
${var/originaltext/replacetext}
Tehát most, ha ezt a parancsot futtatjuk a könyvtárunkon:
for f in *;do mv $f ${f/test/prod};done
Minden, a * -hoz illeszkedő fájl esetében a bash végrehajt egy ehhez hasonló parancsot:
mv test.config prod.config
Megállapítottam, hogy a shell ismerete felbecsülhetetlen értékű a szerverek adminisztrálásánál, vagy csak a fájlgyűjtés kezeléséhez, és megtakarított nekem órákat az egyébként manuális munkához.
És igen, tudomásul veszem, hogy számos eszközzel több fájl átnevezhető.