Shell Geek: egyszerre több fájl átnevezése

Shell Geek: egyszerre több fájl átnevezése
Shell Geek: egyszerre több fájl átnevezése

Videó: Shell Geek: egyszerre több fájl átnevezése

Videó: Shell Geek: egyszerre több fájl átnevezése
Videó: Реестр Windows: понять и устранить неполадки 2024, Lehet
Anonim

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 bármilyen fájlegyezési mintával, például * vagy *.txt, és cserélheti minden linux paranccsal. A parancs soronként fut a fájlok illesztési mintájához illeszkedő fájlok mindegyikén.

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ő.

Ajánlott: