A parancs átnevezése Linux alatt

Ismerkedjen meg a Linux-világ erőforrásait átnevező fájlokkal, és mv
pihenjen - és magának is. Rename
rugalmas, 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 mv
parancsnak é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 mv
nem egy dedikált fájlátnevezési eszköz.
Egyetlen fájl átnevezése mv-vel
A mv
fá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. mv
nem 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 mv
teljesen ellentétben áll az mv
egyetlen 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 mv
meg 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 mv
mozgá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 rename
parancs.
rename
nem 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, ls
hogy működött-e. Ne rename
haszná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, prename
vagy perl-rename
a többi disztribúció esetén).
Az utolsó rész az *.prog
, amely azt mondja, rename
hogy 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 s
helyettesítést jelenti. Az első kifejezés ( .prog
) az, ami rename
minden 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 rename
parancs 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 ls
parancsot 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 ls
parancsból láthatjuk, hogy a „.c” fájljaink mindegyike „sl_” -vel van előkészítve. Szabaduljunk meg ettől teljesen.
A rename
parancs 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.
rename
minden „.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 ls
parancs 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 rename
a karakterláncot a „paraméter” karakterlánccal cseréljük ki. Még ls
egyszer megnézzük, hogy a rename
parancs 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 rename
parancs a fájlnév mindenhol a „param” kifejezésre fog keresni, és minden esetben a „paraméter” kifejezésre cseréli.
A ls
parancs 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 rename
parancsunk a line (^
) metacharacter elejét használja a „paraméter” keresési kifejezés előtt. Ez azt mondja, rename
hogy 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 ls
kö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 rename
hazugság ereje Perl hatalmában rejlik. A Perl minden ereje az Ön rendelkezésére áll.
Keresés csoportosítással
rename
mé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 rename
parancs 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 rename
parancs 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 rename
alá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 ls
parancs 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 rename
parancs 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.