Kaip naudoti pervadinimo komandą „Linux“

Susipažinkite su failų, pervardijančių „Linux“ pasaulį, mvvardais ir pailsėkite sau. Renameyra lankstus, greitas ir kartais net lengvesnis. Štai šios komandos jėgos pamoka.

Kas negerai su mv?

Nieko blogo mv. Komanda atlieka puikų darbą ir yra visuose „Linux“ paskirstymuose, „MacOS“ ir kitose „Unix“ tipo operacinėse sistemose. Taigi jis visada prieinamas. Tačiau kartais jums reikia tik buldozerio, o ne kastuvo.

mvKomanda turi gyvenimo tikslą, ir kad yra perkelti failus. Tai malonus šalutinis poveikis, kad jį galima panaudoti perkeliant esamą failą į naują failą su nauju pavadinimu. Grynasis poveikis yra failo pervadinimas, todėl gauname tai, ko norime. Bet mvtai nėra specialus failų pervadinimo įrankis.

Vieno failo pervadinimas naudojant mv

Norėdami mvpervardyti failo tipą mv, tarpą, failo pavadinimą, tarpą ir naują pavadinimą, kurį norite turėti faile. Tada paspauskite Enter.

Galite  lspatikrinti, ar failas pervardytas.

mv oldfile.txt newfile.txt
ls * .txt

Kelių failų pervadinimas naudojant mv

Viskas tampa sudėtingiau, kai norite pervadinti kelis failus. mvnegali pervardyti kelių failų. Turite pasitelkti keletą madingų „Bash“ triukų. Tai puiku, jei žinote vidutinio lygio komandinės eilutės fu, tačiau kelių failų pervardijimo sudėtingumas mvyra visiškai priešingas paprastam mvvieno failo pervadinimui.

Viskas greitai paaštrėja.

Tarkime, kad turime katalogą, kuriame yra įvairių failų, skirtingų tipų. Kai kurie iš šių failų turi „.prog“ plėtinį. Norime juos pervadinti komandinėje eilutėje, kad jie turėtų „.prg“ plėtinį.

Kaip susikaupti mvtai darant mums? Pažvelkime į failus.

ls * .prog -l

Štai vienas iš būdų tai padaryti, nesinaudojant faktinio „Bash“ scenarijaus failo rašymu.

už f į * .prog; daryti mv - "$ f" "$ {f% .prog} .prg"

DId, kad darbas? Patikrinkime failus ir pamatysime.

ls * .pr *

Taigi, taip, tai pavyko. Dabar jie visi yra „.prg“ failai, o kataloge nėra „.prog“ failų.

Kas ką tik nutiko?

Ką ta ilga komanda iš tikrųjų atliko? Sugrupuokime.

už f į * .prog; daryti mv - "$ f" "$ {f% .prog} .prg"

Pirmoji dalis pradeda kilpą, kuri savo ruožtu apdoros kiekvieną kataloge esantį „.prog“ failą.

Kitas dalis sako, ką apdorojimas bus padaryti . Ji naudoja  mvjudėti kiekvieną failą į naują failą. Naujas failas bus pavadintas originalaus failo pavadinimu, išskyrus „.prog“ dalį. Vietoj to bus naudojamas naujas .prg plėtinys.

Turi būti paprastesnis būdas

Garantuotai. Tai yra renamekomanda.

renamenėra standartinio „Linux“ paskirstymo dalis, todėl turėsite jį įdiegti. Skirtingose ​​„Linux“ šeimose jis taip pat turi skirtingą pavadinimą, tačiau visi jie veikia vienodai. Tiesiog turėsite pakeisti atitinkamą komandos pavadinimą pagal naudojamą „Linux“ skonį.

„Ubuntu“ ir „Debian“ sukurtuose paskirstymuose, kuriuos įdiegiate renametaip:

sudo apt-get install pervadinti

„Fedora“ ir „RedHat“ gautuose platinimuose diegiate prenametaip. Atkreipkite dėmesį į pradinį „p“, kuris reiškia „Perl“.

sudo dnf įdiegti prename

Norėdami jį įdiegti „Manjaro Linux“, naudokite šią komandą. Atkreipkite dėmesį, kad vadinama pervadinimo komanda perl-rename.

sudo pacman -Syu perl pervadinti

Padarykime tai dar kartą

Ir šį kartą mes naudosime rename. Mes sukame laikrodį atgal, kad turėtume rinkinį „.prog“.

ls * .prog

Dabar pervardykime šią komandą: Tada patikrinsime, lsar tai pavyko. Nepamirškite pakeisti renametinkamu komandos pavadinimu savo „Linux“, jei nenaudojate „Ubuntu“ ar „Debian“ išvestos „Linux“.

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

Tai pavyko, dabar jie visi yra .prg failai, o kataloge neliko „.prog“ failų.

Kas nutiko?

Paaiškinkime tą magijos dalį iš trijų dalių.

Pirmoji dalis yra komandos pavadinimas, rename(arba prename, arba perl-renamedėl kitų skirstinių).

Paskutinis dalis *.prog, kuri pasakoja renameveikti ant visų ".prog" failus.

Vidurinė dalis apibrėžia darbas norime būti padaryta dėl kiekvieno failo. Tai sreiškia pakaitalą. Pirmasis terminas ( .prog) yra tai, ko renameieškos kiekviename failo pavadinime, o antrasis terminas ( .prg) - juo bus pakeista.

Vidurinė komandos dalis arba centrinė išraiška yra „Perl“ reguliarioji išraiška ir tai suteikia renamekomandai lankstumo.

Kitų failo vardo dalių keitimas

Iki šiol pakeitėme failų vardų plėtinius, pakeiskime kitas failų pavadinimų dalis.

Kataloge yra daug C šaltinio kodo failų. Visiems failų pavadinimams pridedami žodžiai „slang_“. Mes galime tai patikrinti ls.

ls sl * .c

Mes pakeisime visus „sleng_“ atvejus „sl_“. Komandos formatas mums jau yra žinomas. Mes tik keičiame paieškos terminą, pakeitimo terminą ir failo tipą.

pervardyti 's / slang_ / sl_' * .c

Šį kartą ieškome „.c“ failų ir ieškome „slang_“. Kai „slang_“ randamas failo pavadinime, jis pakeičiamas „sl_“.

Mes galime patikrinti šios komandos rezultatą pakartodami lskomandą iš viršaus su tais pačiais parametrais:

ls sl * .c

Ištrinama dalis failo pavadinimo

Dalį failo pavadinimo galime pašalinti pakeisdami paieškos terminą į nieką.

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

lskomandos matome, kad visi „.c“ failai yra su „sl_“. Atsikratykime to visiškai.

renameKomanda taip pat formatu, kaip anksčiau. Ieškosime „.c“ failų. Paieškos terminas yra „sl_“, tačiau pakaitinio termino nėra. Du atgaliniai brūkšniai be nieko tarp jų nieko nereiškia, tuščia eilutė.

renameapdoros kiekvieną „.c“ failą paeiliui. Jis ieškos „sl_“ failo pavadinime. Jei jis bus rastas, jis bus pakeistas niekuo. Kitaip tariant, paieškos terminas ištrinamas.

Antrasis komandos naudojimas lspatvirtina, kad „sl_“ priešdėlis pašalintas iš kiekvieno „.c“ failo.

Apriboti tam tikrų failų pavadinimų dalių pakeitimus

Pažvelkime ls į failus, kurių failų pavadinimuose yra eilutė „param“. Tada mes renamepakeisime šią eilutę eilute „parametras“. Mes lsdar kartą naudosime, kad pamatytume renamekomandos poveikį šiems failams.

ls * param *
pervardyti 's / param / parametras' * .c
ls * param *

Rasti keturi failai, kurių failo pavadinime yra „param“. param.c, param_one.c ir param_two.c visi turime "parametras" tuo pradžios jų vardu. „third_param.c“ turi „param“ vardo pabaigoje , prieš pat plėtinį.

renameKomanda ketina ieškoti "parametras" visur failo, ir pakeisti jį su "parametras" visais atvejais.

Antrasis komandos naudojimas  lsparodo, kad būtent taip ir nutiko. Nesvarbu, ar „param“ buvo failo pavadinimo pradžioje, ar pabaigoje, jis buvo pakeistas į „parametras“.

Mes galime naudoti Perlo metaženklius, kad patobulintume vidurinės išraiškos elgesį. Metaženklai yra simboliai, žymintys simbolių pozicijas ar sekas. Pavyzdžiui, ^reiškia „eilutės pradžia“ $reiškia „eilutės pabaiga“ ir .bet kurį atskirą simbolį (išskyrus naujos eilutės simbolį).

Norėdami naudoti ^paiešką tik failų pavadinimų pradžioje, naudosime eilutės metacharacter ( ) pradžią.

ls * param * .c
pervardyti 's / ^ parametras / reikšmė /' * .c
ls * param * .c
ls vertė * .c

Failai, kuriuos pervadinome anksčiau, yra išvardyti ir matome, kad eilutė „parametras“ yra trijų failų pavadinimų pradžioje ir yra vieno iš failų pavadinimų pabaigoje.

Mūsų renamekomandoje (^prieš paieškos terminą „parametras“ naudojama eilutės ) metacharakterio pradžia  . Tai nurodo rename, kad paieškos terminas buvo rastas tik tada, jei jis yra failo pavadinimo pradžioje. Paieškos eilutė „parametras“ bus ignoruojama, jei ji yra kitur failo pavadinime.

Tikrinti su lsmatome, kad failo pavadinimas, kuris turėjo "parametrą" tuo tikslu failo pavadinimo nebuvo pakeista, tačiau trys varduose, kad turėjo "parametrą" Tuo pradžioje jų pavadinimų turėjo paieškos eilutę pakeičiamas pavaduojančiam laikotarpiu „Vertė“.

Melu galia renameslypi Perlo galioje. Jūsų žinioje yra visa „Perl“ jėga.

Paieška naudojant grupes

renameturi dar daugiau triukų savo rankovėje. Panagrinėkime atvejį, kai jų pavadinimuose gali būti failų su panašiomis eilutėmis. Jie nėra visiškai tos pačios eilutės, todėl paprasta paieška ir pakeitimas čia neveiks.

Šiame pavyzdyje mes naudojame ls patikrinti, kurie mūsų failai prasideda „str“. Yra du iš jų: string.c ir strangle.c. Mes galime pervadinti abi eilutes vienu metu, naudodamiesi technika, vadinama grupavimu.

Centrinė šios renamekomandos išraiška ieškos eilutės failų pavadinimuose, kurių simbolių seka yra „stri“ arba „stra“, kur po tų sekų tuoj pat yra „ng“. Kitaip tariant, mūsų paieškos terminas ieškos „styginių“ ir „keistų“. Pakeitimo terminas yra „sprogimas“.

ls str * .c
pervardyti 's / (stri | stra) ng / bang /' * .c
ls draudimas * .c

Naudojant  ls antrą kartą patvirtina, kad string.c tapo bang.c ir strangle.c dabar bangle.c.

Vertimų naudojimas su pervadinimu

renameKomanda gali atlikti veiksmus varduose vadinamų vertimai. Paprastas vertimo pavyzdys būtų priversti rinkmenų rinkinius įvesti didžiosiomis raidėmis.

Žemiau esančioje renamekomandoje atkreipkite dėmesį, kad nenaudojame s/ pagrindinės išraiškos paleidimui, mes naudojame y/. Tai rodo,  renamekad mes neatliekame pakeitimo; atliekame vertimą.

Šis a-z terminas yra „Perl“ išraiška, reiškianti visus mažąsias raides sekoje nuo a iki z. Panašiai šis A-Z terminas reiškia visas didžiąsias raides sekoje nuo A iki Z.

Centrinę šios komandos išraišką galima būtų perfrazuoti taip: „Jei failo pavadinime randama bet kuri iš mažųjų raidžių nuo a iki z, pakeiskite jas atitinkamais simboliais iš didžiųjų raidžių sekos nuo A iki Z“.

Norėdami priversti visų „.prg“ failų vardus įvesti didžiąsias raides, naudokite šią komandą:

pervardyti „y / az / AZ /“ * .prg

ls * .PRG

Į lskomandą rodo mums, kad visi "Prg" varduose dabar didžiosiomis raidėmis. Tiesą sakant, kad būtų griežtai tikslūs, jie nebėra „.prg“ failai. Jie yra „.PRG“ failai. „Linux“ skiria didžiosios ir mažosios raidės.

Mes galime pakeisti tą paskutinę komandą, pakeisdami  centrinės išraiškos a-zir A-Zterminų padėtį.

pervardyti „y / AZ / az /“ * .PRG

ls * .prg

Per (per penkias minutes) jūs neišmoksite „Perl“

Gerai praleistas laikas susipažinti su Perlu. Tačiau norint pradėti naudoti laiką taupančias komandos galimybes rename, jums visai nereikia turėti daug „Perl“ žinių, kad gautumėte didelę naudą iš galios, paprastumo ir laiko.