Kako uporabiti ukaz za preimenovanje v Linuxu

Spoznajte datoteko za preimenovanje elektrarne v svetu Linuxa mvin si privoščite počitek. Renameje prilagodljiv, hiter in včasih celo lažji. Tukaj je vadnica te elektrarne ukaza.

Kaj je narobe z mv?

Nič ni narobe mv. Ukaz dobro opravi svoje delo in ga najdemo v vseh distribucijah Linuxa, v macOS in drugih Unixu podobnih operacijskih sistemih. Tako je vedno na voljo. Toda včasih potrebujete le buldožer, ne lopate.

mvUkaz ima namen v življenju, in da je za premikanje datotek. Vesel stranski učinek je, da ga lahko uporabimo za premikanje obstoječe datoteke v novo datoteko z novim imenom. Neto učinek je preimenovanje datoteke, tako da dobimo, kar želimo. Vendar mvni namensko orodje za preimenovanje datotek.

Preimenovanje ene datoteke z mv

Za mvpreimenovanje vrste datoteke mv, presledka, imena datoteke, presledka in novega imena, ki ga želite imeti v datoteki. Nato pritisnite Enter.

Z njo lahko  lspreverite, ali je bila datoteka preimenovana.

mv oldfile.txt newfile.txt
ls * .txt

Preimenovanje več datotek z mv

Stvari postanejo bolj zapletene, če želite preimenovati več datotek. mvnima zmožnosti za preimenovanje več datotek. Uporabiti morate nekaj čudovitih trikov Bash. To je v redu, če poznate nekaj srednjega razreda fu ukazne vrstice, vendar je zapletenost preimenovanja več datotek mvv ostrem nasprotju z enostavnostjo uporabe mvza preimenovanje ene datoteke.

Stvari se hitro stopnjujejo.

Recimo, da imamo imenik z različnimi datotekami različnih vrst. Nekatere od teh datotek imajo pripono .prog. V ukazni vrstici jih želimo preimenovati, tako da bodo imeli pripono .prg.

Kako se prepiramo, mvda to naredimo za nas? Oglejmo si datoteke.

ls * .prog -l

Tukaj je en način, da ne zapišemo dejanske datoteke skripta Bash.

za f v * .prog; naredite mv - "$ f" "$ {f% .prog} .prg"

Si to delal? Preverimo datoteke in poglejmo.

ls * .pr *

Torej, ja, uspelo je. Zdaj so vse datoteke .prg in v imeniku ni datotek .prog.

Kaj se je pravkar zgodilo?

Kaj je pravzaprav naredil ta dolgi ukaz? Razčistimo.

za f v * .prog; naredite mv - "$ f" "$ {f% .prog} .prg"

Prvi del zažene zanko, ki bo zaporedoma obdelala vsako datoteko .prog v imeniku.

Naslednji del govori, kaj bo obdelava naredila . Uporablja se  mvza premikanje vsake datoteke v novo datoteko. Nova datoteka bo poimenovana z imenom izvirne datoteke brez dela ".prog". Namesto tega bo uporabljena nova razširitev ».prg«.

Obstajati mora enostavnejša pot

Vsekakor. To je renameukaz.

renameni del standardne distribucije Linuxa, zato ga boste morali namestiti. V različnih družinah Linuxa ima tudi drugačno ime, vendar vsi delujejo enako. Namesto ustreznega imena ukaza boste morali zamenjati okus Linux, ki ga uporabljate.

v distribucijah, ki izhajajo iz Ubuntuja in Debiana, namestite renametako:

sudo apt-get namestite preimenovanje

V distribucijah, ki izhajajo iz Fedore in RedHat, namestite prenametako. Upoštevajte začetni "p", ki pomeni Perl.

sudo dnf namestitev predimenovanja

Če ga želite namestiti v Manjaro Linux, uporabite naslednji ukaz. Upoštevajte, da je poklican ukaz za preimenovanje perl-rename.

sudo pacman -Syu perl-preimenuj

Naredimo to še enkrat

In tokrat bomo uporabili rename. Uro bomo pomaknili nazaj, tako da bomo imeli nabor datotek .prog.

ls * .prog

Zdaj pa jih preimenujmo z naslednjim ukazom. Nato bomo preverili, lsali je delovalo. Ne pozabite nadomestiti renamez ustreznim imenom ukaza za vaš Linux, če ne uporabljate Ubuntuja ali Linuxa, ki izhaja iz Debiana.

preimenuj 's / .prog / .prg /' * .prog
ls * .pr *

To je delovalo, zdaj so vse datoteke .prg in v imeniku ni več datotek .prog.

Kaj se je zgodilo v tem času?

Razložimo delček čarovnije v treh delih.

Prvi del je ime ukaza, rename(ali prename, ali perl-rename, za druge distribucije).

Zadnji del je *.prog, ki pove rename, da deluje na vseh ".prog" datotek.

Srednji del opredeljuje delo želimo treba opraviti na vsaki datoteke. sPomeni nadomestek. Prvi izraz ( .prog) je tisto, kar renamebo iskal v vsakem imenu datoteke, drugi izraz ( .prg) pa je tisto, s čimer bo nadomeščen.

Srednji del ukaza ali osrednji izraz je Perlov "regularni izraz" in je to tisto, kar renameukazu daje prožnost.

Spreminjanje drugih delov imena datoteke

Do zdaj smo spremenili pripone imen datotek, spremenimo druge dele imen datotek.

V imeniku je veliko datotek izvorne kode C. Vsa imena datotek imajo predpono z »sleng_«. To lahko preverimo pri ls.

ls sl * .c

Vse pojavitve "slang_" bomo nadomestili z "sl_". Oblika ukaza nam je že znana. Spreminjamo samo iskalni izraz, nadomestni izraz in vrsto datoteke.

preimenuj 's / sleng_ / sl_' * .c

Tokrat iščemo datoteke ".c" in iščemo "sleng_". Kadar koli v imenu datoteke najdemo »sleng_«, ga nadomestimo s »sl_«.

Rezultat tega ukaza lahko preverimo tako, da ponovimo lsukaz od zgoraj z enakimi parametri:

ls sl * .c

Brisanje dela imena datoteke

Del imena datoteke lahko odstranimo tako, da iskalni izraz zamenjamo z ničemer.

ls * .c
preimenuj 's / sl _ //' * .c
ls * .c

Iz lsukaza lahko razberemo, da so vse naše datoteke .c dodane s sl. Tega se popolnoma znebimo.

renameUkaz na isti način kot prej. Iskali bomo datoteke .c. Iskalni izraz je "sl_", vendar nadomestnega izraza ni. Dve poševnici brez ničesar med njima ne pomeni ničesar, prazen niz.

renamebo vsako datoteko ".c" obdelal po vrsti. V imenu datoteke bo poiskal »sl_«. Če ga najdete, ga ne bo zamenjal nič. Z drugimi besedami, iskalni izraz se izbriše.

Druga uporaba lsukaza potrjuje, da je bila predpona „sl_“ odstranjena iz vsake datoteke „.c“.

Omejite spremembe na določene dele imen datotek

Oglejmo ls si datoteke, ki imajo v imenu datoteke niz »param«. Nato bomo renameniz uporabili za zamenjavo z nizom "parameter". Še lsenkrat bomo uporabili, da vidimo učinek renameukaza na te datoteke.

ls * param *
preimenuj 's / param / parameter' * .c
ls * param *

Najdene so štiri datoteke, ki imajo v imenu datoteke "param". param.c, param_one.c in param_two.c imajo na začetku imena »param« . third_param.c ima na koncu imena »param« , tik pred pripono.

renameUkaz se bo iskanje za "param" povsod v ime datoteke, in ga nadomestiti z "parameter" v vseh primerih.

Druga uporaba  lsukaza nam pokaže, da se je zgodilo točno to. Ne glede na to, ali je bil »param« na začetku ali na koncu imena datoteke, je bil nadomeščen s »parameter«.

Za izboljšanje vedenja srednjega izraza lahko uporabimo Perlove metaznake. Metaznaki so simboli, ki predstavljajo položaje ali zaporedja znakov. Na primer, ^pomeni "začetek niza", $pomeni "konec niza" in .pomeni kateri koli posamezen znak (razen znaka nove vrstice).

Z začetkom niza metacharacter ( ^) bomo iskanje omejili na začetek imen datotek.

ls * param * .c
preimenuj 's / ^ parameter / vrednost /' * .c
ls * param * .c
ls vrednost * .c

Datoteke, ki smo jih prej preimenovali, so naštete in vidimo, da je niz »parameter« na začetku treh imen datotek in na koncu enega od imen datotek.

Naš renameukaz uporablja (^metaznak začetek vrstice  ) pred iskalnim izrazom »parameter«. To pove, renameda se iskalni izraz šteje za najden le, če je na začetku imena datoteke. Iskalni niz »parameter« bo prezrt, če je kje drugje v imenu datoteke.

Pri preverjanju lslahko ugotovimo, da ime datoteke, ki je imelo na koncu imena "parameter", ni bilo spremenjeno, toda pri treh imenih datotek, ki so imeli na začetku imena "parameter", je iskalni niz nadomeščen z nadomestnim izrazom "Vrednost."

Moč renamelaži je v moči Perla. Na voljo vam je vsa moč Perla.

Iskanje s skupinami

renameima v rokavu še več trikov. Poglejmo primer, ko bi lahko imeli datoteke s podobnimi nizi v njihovih imenih. Niso povsem enaki nizi, zato preprosto iskanje in zamenjava tukaj ne bosta delovala.

V tem primeru ls preverimo, katere datoteke imamo, ki se začnejo z “str”. Obstajata dva, string.c in strangle.c. Oba niza lahko hkrati preimenujemo s tehniko, imenovano združevanje.

Osrednji izraz tega renameukaza bo iskal nize znotraj imen datotek, ki imajo zaporedje znakov "stri" ali "stra", kjer tem zaporedjem takoj sledi "ng". Z drugimi besedami, naš iskalni izraz bo iskal »niz« in »zadavljen«. Nadomestni izraz je "bang".

ls str * .c
preimenuj 's / (stri | stra) ng / bang /' * .c
je prepoved * .c

Uporaba  ls drugič potrjuje, da je string.c postala bang.c in strangle.c je zdaj bangle.c.

Uporaba prevodov s preimenovanjem

renameUkaz lahko opravlja dejanja v zvezi datotek ti prevodi. Preprost primer prevoda bi bil prisiliti nabor imen datotek v velike črke.

V renamespodnjem ukazu opazite, da s/ za zagon osrednjega izraza ne uporabljamo, ampak uporabljamo y/. To pomeni,  renameda ne izvajamo zamenjave; izvajamo prevod.

a-z Izraz perl izraz, ki pomeni vse male znake v zaporedju od A do Ž. Podobno A-Z izraz predstavlja vse velike črke v zaporedju od A do Ž.

Osrednji izraz v tem ukazu bi lahko parafraziral kot "če je v imenu datoteke katera od malih črk od a do z, jih zamenjajte z ustreznimi znaki iz zaporedja velikih črk od A do Ž"

Če želite imena datotek vseh datotek .prg prisiliti v velike črke, uporabite ta ukaz:

preimenuj 'y / az / AZ /' * .prg

ls * .PRG

Na lsukaz nam kaže, da so vsi ".prg" datotek zdaj z velikimi črkami. Pravzaprav, če smo natančni, niso več datoteke .prg. To so datoteke .PRG. Linux razlikuje med velikimi in malimi črkami.

Ta zadnji ukaz lahko obrnemo tako, da obrnemo položaj a-zin A-Z izrazov v osrednjem izrazu.

preimenuj 'y / AZ / az /' * .PRG

ls * .prg

Perla se v petih minutah ne naučite

Spoznavanje Perla je dobro porabljen čas. Da pa začnete uporabljati zmožnosti renameukaza za prihranek časa , vam sploh ni treba imeti veliko znanja Perla, da bi izkoristili velike prednosti v moči, preprostosti in času.