A parancs átnevezése Linux alatt

Ismerkedjen meg a Linux-világ erőforrásait átnevező fájlokkal, és mvpihenjen - és magának is. Renamerugalmas, gyors és néha még könnyebb is. Itt van egy útmutatás a parancs ezen erőművéhez.

Mi a baj az mv-vel?

Nincs ezzel semmi baj mv. A parancs kiváló munkát végez, és megtalálható minden Linux disztribúcióban, a macOS-ban és más Unix-szerű operációs rendszerekben. Tehát mindig elérhető. De néha csak egy buldózerre van szükség, nem pedig egy lapátra.

A mvparancsnak életcélja van, ez a fájlok áthelyezése. Ez egy boldog mellékhatása, hogy lehet használni, hogy mozogni egy meglévő fájlt át egy új fájlt, új névvel. A nettó hatás a fájl átnevezése, így megkapjuk, amit akarunk. De mvnem egy dedikált fájlátnevezési eszköz.

Egyetlen fájl átnevezése mv-vel

A mvfájltípus mv, szóköz, a fájl neve, a szóköz és az új név átnevezésére használható . Ezután nyomja meg az Enter billentyűt.

Használhatja  ls, hogy ellenőrizze a fájl át lett nevezve.

mv oldfile.txt newfile.txt
ls * .txt

Több fájl átnevezése az mv segítségével

A dolgok bonyolultabbá válnak, ha több fájlt akar átnevezni. mvnem képes több fájl átnevezésével foglalkozni. Használnia kell néhány remek Bash-trükköt. Ez rendben van, ha ismer néhány közepes fokozatú parancssori fu-t, de a több fájl átnevezésének bonyolultsága mvteljesen ellentétben áll az mvegyetlen fájl átnevezésének egyszerűségével.

A dolgok gyorsan eszkalálódnak.

Tegyük fel, hogy van egy könyvtárunk, amelyben különféle fájlok találhatók, különböző típusúak. Néhány ilyen fájl kiterjesztése „.prog”. Át akarjuk nevezni őket a parancssorban, hogy „.prg” kiterjesztésűek legyenek.

Hogyan birkózzunk mvmeg azzal, hogy ezt megtesszük helyettünk? Vessünk egy pillantást a fájlokra.

ls * .prog -l

Ez az egyik módja annak, hogy ne használjon tényleges Bash szkriptfájlokat.

f esetén * .prog; do mv - "$ f" "$ {f% .prog} .prg"

DId, hogy működik? Ellenőrizzük a fájlokat, és megnézzük.

ls * .pr *

Szóval, igen, sikerült. Most mindegyik „.prg” fájl, és a könyvtárban nincsenek „.prog” fájlok.

Mi történt?

Mit tett valójában ez a hosszú parancs? Bontjuk le.

f esetén * .prog; do mv - "$ f" "$ {f% .prog} .prg"

Az első rész egy ciklust indít, amely a könyvtár minden egyes „.prog” fájlját fel fogja dolgozni.

A következő rész azt mondja, amit a feldolgozás tenni . Ez a  mvmozgás minden fájlt egy új fájlt. Az új fájlt az eredeti fájl nevével fogjuk megnevezni, kivéve a .prog részt. Helyette egy új .prg kiterjesztést használnak.

Kell, hogy legyen egy egyszerűbb út

Leghatározottabban. Ez a renameparancs.

renamenem része a szokásos Linux disztribúciónak, ezért telepítenie kell. A Linux különböző családjaiban más néven is szerepel, de mindegyik ugyanúgy működik. Csak ki kell cserélnie a megfelelő parancs nevét az Ön által használt Linux íznek megfelelően.

az Ubuntu és a Debian-alapú terjesztésekben így telepít rename:

sudo apt-get install átnevezés

A Fedora és a RedHat származékú disztribúciókban így telepít prename. Vegye figyelembe a kezdeti „p” -t, amely Perl-t jelent.

sudo dnf install prename

A Manjaro Linux telepítéséhez használja a következő parancsot. Vegye figyelembe, hogy az átnevezési parancs meghívásra kerül perl-rename.

sudo pacman -Syu perl-átnevezés

Csináljuk újra

És ezúttal használjuk rename. Visszagörgetjük az órát, hogy legyen egy sor .prog fájlunk.

ls * .prog

Most átnevezzük őket a következő paranccsal. Ezután ellenőrizzük, lshogy működött-e. Ne renamehasználja az Linux megfelelő parancsnevét, ha nem az Ubuntut vagy a Debian-alapú Linuxot használja.

nevezze át 's / .prog / .prg /' * .prog
ls * .pr *

Ez bevált, most már mindegyik „.prg” fájl, és a könyvtárban nincsenek „.prog” fájlok.

Mi történt ezzel a típussal?

Magyarázzuk el ezt a kis varázslatot, három részben.

Az első rész a parancs neve rename(vagy, prenamevagy perl-renamea többi disztribúció esetén).

Az utolsó rész az *.prog, amely azt mondja, renamehogy működjön az összes „.prog” fájlon.

A középső rész meghatározza azt a munkát, amelyet minden fájlnévnél el akarunk végezni. A shelyettesítést jelenti. Az első kifejezés ( .prog) az, ami renameminden fájlnévben keresni fog, a második kifejezés ( .prg) pedig az, amellyel helyettesíteni fogjuk.

A parancs középső része, vagy a központi kifejezés Perl 'reguláris kifejezés', és ez adja a renameparancs rugalmasságát.

A fájlnév egyéb részeinek módosítása

Eddig megváltoztattuk a fájlnévkiterjesztéseket, módosítsuk a fájlnevek más részeit.

A könyvtárban sok C forráskód fájl található. Az összes fájlnév előtagja „szleng_”. Ezt ellenőrizhetjük ls.

ls sl * .c

A „szleng_” összes előfordulását „szl_” -re cseréljük. A parancs formátuma már ismerős számunkra. Csak módosítjuk a keresési kifejezést, a helyettesítő kifejezést és a fájltípust.

nevezze át 's / slang_ / sl_' * .c

Ezúttal „.c” fájlokat keresünk, és a „szleng_” kifejezésre keresünk. Amikor egy „slang_” szerepel egy fájlnévben, azt „sl_” helyettesíti.

A parancs eredményét úgy ellenőrizhetjük, hogy megismételjük a lsparancsot felülről ugyanazokkal a paraméterekkel:

ls sl * .c

A fájlnév egy részének törlése

A fájlnév egy részét eltávolíthatjuk úgy, hogy a keresési kifejezést semmivel helyettesítjük.

ls * .c
nevezze át 's / sl _ //' * .c
ls * .c

A lsparancsból láthatjuk, hogy a „.c” fájljaink mindegyike „sl_” -vel van előkészítve. Szabaduljunk meg ettől teljesen.

A renameparancs ugyanazt a formátumot követi, mint korábban. „.C” fájlokat fogunk keresni. A keresési kifejezés „sl_”, de nincs helyettesítő kifejezés. Két visszavágás anélkül, hogy bármi lenne közöttük, semmit sem jelent, üres húrot.

renameminden „.c” fájlt felváltva dolgozza fel. Megkeresi a „sl_” szót a fájlnévben. Ha megtalálják, akkor semmi sem váltja fel. Más szavakkal, a keresési kifejezés törlődik.

A lsparancs második használata megerősíti, hogy az „sl_” előtagot eltávolították minden „.c” fájlból.

Korlátozza a fájlnevek egyes részeinek változását

Nézzük azokat ls a fájlokat, amelyek fájlnevében a „param” karakterlánc található. Ezután renamea karakterláncot a „paraméter” karakterlánccal cseréljük ki. Még lsegyszer megnézzük, hogy a renameparancs milyen hatást gyakorolt ​​ezekre a fájlokra.

ls * param *
nevezze át a / param / paramétert * .c
ls * param *

Négy olyan fájl található, amelyek fájlnevében „param” szerepel. param.c, param_one.c és param_two.c mindegyikük neve elején szerepel a „param” . A third_param.c neve „param” van a neve végén , közvetlenül a kiterjesztés előtt.

A renameparancs a fájlnév mindenhol a „param” kifejezésre fog keresni, és minden esetben a „paraméter” kifejezésre cseréli.

A lsparancs második használata  megmutatja, hogy pontosan ez történt. Függetlenül attól, hogy a „param” a fájlnév elején vagy végén volt, helyébe a „paraméter” lépett.

Perl metakaraktereivel finomíthatjuk a középső kifejezés viselkedését. A metakarakterek olyan szimbólumok, amelyek a karakterek pozícióit vagy sorozatát jelentik. Például ^jelentése: „karakterlánc kezdete”, „karakterlánc $vége”, és .bármely egyedi karaktert jelent (az újsoros karakter kivételével).

A string metacharacter ( ^) kezdetét fogjuk használni, hogy a keresést a fájlnevek elejére korlátozzuk.

ls * param * .c
nevezze át 's / ^ paraméter / érték /' * .c
ls * param * .c
ls érték * .c

A korábban átnevezett fájlok fel vannak sorolva, és láthatjuk, hogy a „paraméter” karakterlánc három fájlnév elején van, és az egyik fájlnév végén van.

A renameparancsunk a line (^) metacharacter elejét használja a  „paraméter” keresési kifejezés előtt. Ez azt mondja, renamehogy csak akkor kell a keresett kifejezést megtalálni, ha az a fájlnév elején található. A „paraméter” keresési karakterlánc figyelmen kívül marad, ha bárhol máshol van a fájlnévben.

A lskövetkezővel ellenőrizve láthatjuk, hogy az a fájlnév, amelynek a fájlnév végén volt „paramétere”, nem lett módosítva, de a három fájlnév, amelynek a neve elején volt „paraméter”, a keresési karakterláncot helyettesítette "érték."

A renamehazugság ereje Perl hatalmában rejlik. A Perl minden ereje az Ön rendelkezésére áll.

Keresés csoportosítással

renamemég több trükköt visel. Vegyük fontolóra azt az esetet, amikor esetleg hasonló karakterláncú fájlok vannak a nevükben. Nem teljesen azonos karakterláncok, ezért itt nem fog működni egy egyszerű keresés és helyettesítés.

Ebben a példában ls ellenőrizzük, hogy mely fájljaink vannak, amelyek „str” -nel kezdődnek. Kettő van, a string.c és a strangle.c. Átnevezhetjük mindkét karakterláncot egyszerre a csoportosítás nevű technikával.

A renameparancs központi kifejezése a „stri” vagy „stra” karakterláncú fájlnevekben lévő karakterláncokat keresi, ahol ezeket a szekvenciákat azonnal „ng” követi. Más szavakkal, keresési kifejezésünk a „húr” és „furcsa” kifejezésre fog keresni . A helyettesítő kifejezés „bumm”.

ls str * .c
nevezze át 's / (stri | stra) ng / bang /' * .c
ls tilalom * .c

Segítségével  ls másodszor megerősíti, hogy string.c vált bang.c és strangle.c most bangle.c.

Fordítások használata átnevezéssel

A renameparancs műveleteket hajthat végre a fordítás nevű fájlneveken. A fordítás egyszerű példája egy fájlnév-készlet nagybetűvé kényszerítése.

Az renamealábbi parancsban vegye észre, hogy nem a-t használjuk s/ a központi kifejezés elindításához, hanem y/. Ez azt mondja  rename, hogy nem hajtunk végre cserét; fordítást hajtunk végre.

A a-z kifejezés egy Perl kifejezés, amely az a – z szekvenciában szereplő összes kisbetűt jelenti. Hasonlóképpen, a A-Z kifejezés az A-tól Z-ig terjedő sorrend összes nagybetűjét jelöli.

A parancs központi kifejezését úgy lehetne megfogalmazni, hogy "ha a fájlnévben megtalálható bármelyik a-tól z-ig terjedő betű, cserélje ki az A-tól Z-ig terjedő nagybetűk sorozatának megfelelő karaktereivel".

Az összes „.prg” fájl nagybetűsre kényszerítéséhez használja ezt a parancsot:

nevezze át 'y / az / AZ /' * .prg

ls * .PRG

A lsparancs megmutatja, hogy az összes „.prg” fájlnév nagybetűvel van. Valójában, hogy szigorúan pontosak legyünk, azok már nem „.prg” fájlok. Ezek. .PRG fájlok. A Linux kis- és nagybetűk különbözik.

Ezt az utolsó parancsot megfordíthatjuk úgy, hogy megfordítjuk a a-zés A-Z kifejezések helyzetét a központi kifejezésben.

nevezze át 'y / AZ / az /' * .PRG

ls * .prg

Öt perc alatt nem tanulod meg a Perl-t

A Perl megismerése jól eltöltött idő. De a renameparancs időmegtakarító képességeinek használatához egyáltalán nem kell sok Perl-ismerettel rendelkeznie ahhoz, hogy nagy előnyökhöz jusson a hatalom, az egyszerűség és az idő szempontjából.