Paano Gumamit ng muling pangalan ng Command sa Linux
Makuha sa mahigpit na pagkakapangalan ng file sa pagpapalit ng pangalan ng powerhouse ng mundo ng Linux at ibigay mv
—At iyong sarili — isang pahinga. Palitan ang pangalan
may kakayahang umangkop, mabilis, at kung minsan ay mas madali pa. Narito ang isang tutorial sa powerhouse na ito ng isang utos.
Ano ang Mali Sa mv?
Walang masama mv
. Ang utos ay gumagawa ng isang multa sa isang trabaho, at matatagpuan ito sa lahat ng mga pamamahagi ng Linux, sa macOS, at sa iba pang mga operating system na tulad ng Unix. Kaya laging magagamit ito. Ngunit kung minsan kailangan mo lamang ng isang buldoser, hindi isang pala.
Ang mv
Ang utos ay may layunin sa buhay, at iyon ay upang ilipat ang mga file. Ito ay isang masayang epekto na maaari itong magamit upang ilipat ang isang mayroon nang file sa isang bagong file, na may bagong pangalan. Ang net effect ay upang palitan ang pangalan ng file, kaya makukuha namin ang gusto namin. Pero mv
ay hindi isang nakatuon na tool sa pagpapalit ng pangalan ng file.
Ang pagpapalit ng pangalan ng isang solong File Sa mv
Para magamit mv
upang palitan ang pangalan ng isang uri ng file mv
, isang puwang, ang pangalan ng file, isang puwang, at ang bagong pangalan na nais mong magkaroon ng file. Pagkatapos ay pindutin ang Enter.
Pwede mong gamitinls
upang suriin ang file ay pinalitan ng pangalan.
mv oldfile.txt newfile.txt
ls * .txt
Ang pagpapalit ng pangalan ng Maramihang mga File sa mv
Nagiging mas mahirap ang mga bagay kung nais mong palitan ang pangalan ng maraming mga file. mv
ay walang kakayahan upang harapin ang pagpapalit ng pangalan ng maraming mga file. Dapat kang gumamit ng ilang magagandang trick sa Bash. Mabuti iyan kung alam mo ang ilang medium-grade na command-line fu, ngunit ang pagiging kumplikado ng pagpapalit ng pangalan ng maraming mga file ng mv
nakatayo sa matindi kaibahan sa kadalian ng paggamit mv
upang palitan ang pangalan ng isang solong file.
Mabilis na lumaki ang mga bagay.
Sabihin nating mayroon kaming isang direktoryo na may iba't ibang mga file dito, ng magkakaibang uri. Ang ilan sa mga file na ito ay may extension na ".prog". Gusto naming palitan ang pangalan ng mga ito sa linya ng utos upang magkaroon sila ng isang ".prg" na extension.
Paano tayo makikipag-away mv
sa paggawa nito para sa atin? Tingnan natin ang mga file.
ls * .prog -l
Narito ang isang paraan upang gawin ito na hindi gumagamit ng pagsusulat ng isang aktwal na file ng script ng Bash.
para sa f sa * .prog; gawin mv - "$ f" "$ {f% .prog} .prg"
MATAPOS ang gawaing iyon? Suriin natin ang mga file at tingnan.
ls * .pr *
Kaya, oo, gumana ito. Lahat sila ay mga ".prg" na file ngayon, at walang mga file na ".prog" sa direktoryo.
Anong nangyari?
Ano ba talaga ang ginawa ng mahabang utos na iyon? Basagin natin ito.
para sa f sa * .prog; gawin mv - "$ f" "$ {f% .prog} .prg"
Ang unang bahagi ay nagsisimula ng isang loop na iproseso ang bawat ".prog" na file sa direktoryo, sa turn.
Sinasabi ng susunod na bahagi kung ano ang gagawin ng pagpoproseso gawin. Gumagamit itomv
upang ilipat ang bawat file sa isang bagong file. Papangalanan ang bagong file na may pangalan ng orihinal na file na hindi kasama ang bahagi na ".prog". Ang isang bagong extension ng ".prg" ay gagamitin sa halip.
Kailangang magkaroon ng isang Mas Simpleng Paraan
Tiyak na Ito ay ang palitan ang pangalan
utos
palitan ang pangalan
ay hindi bahagi ng isang pamamahagi ng karaniwang Linux, kaya kakailanganin mong i-install ito. Mayroon din itong iba't ibang pangalan sa iba't ibang mga pamilya ng Linux, ngunit lahat sila ay gumagana sa parehong paraan. Kailangan mo lang palitan ang naaangkop na pangalan ng utos alinsunod sa lasa ng Linux na iyong ginagamit.
sa mga distribusyon na nagmula sa Ubuntu at Debian na na-install mo palitan ang pangalan
ganito:
sudo apt-get install rename
Sa mga distribusyon na nagmula sa Fedora at RedHat na na-install mo prename
ganito. Tandaan ang paunang “p,” na nangangahulugang Perl.
sudo dnf i-install ang prename
Upang mai-install ito sa Manjaro Linux gamitin ang sumusunod na utos. Tandaan na tinawag ang muling pagpapalit ng utos perl-palitan ang pangalan
.
sudo pacman -Syu perl-palitan ang pangalan
Gawin Natin Ito
At sa pagkakataong ito gagamitin namin palitan ang pangalan
. Ibabalik namin ang oras upang magkaroon kami ng isang hanay ng mga ".prog" na mga file.
ls * .prog
Ngayon gamitin natin ang sumusunod na utos upang palitan ang pangalan ng mga ito. Susuriin namin pagkatapos ls
kung ito ay gumana. Tandaan na palitan palitan ang pangalan
gamit ang naaangkop na pangalan ng utos para sa iyong Linux kung hindi ka gumagamit ng Ubuntu o isang nagmula sa Linux na nagmula sa Debian.
palitan ang pangalan ng 's / .prog / .prg /' * .prog
ls * .pr *
Nagtrabaho iyon, lahat sila ngayon ay ".prg" na mga file, at walang natitirang mga file na ".prog" sa direktoryo.
Ano ang nangyari sa TIme na ito?
Ipaliwanag natin ang kaunting mahika, sa tatlong bahagi.
Ang una bahagi ang pangalan ng utos, palitan ang pangalan
(o prename
o perl-palitan ang pangalan
, para sa iba pang mga pamamahagi).
Ang huling bahagi ay * .prog
, na nagsasabi palitan ang pangalan
upang mapatakbo ang lahat ng mga file na ".prog".
Ang gitna tinutukoy ng bahagi ang gawaing nais nating gawin sa bawat filename. Ang s
nangangahulugang kapalit. Ang unang termino (.prog
) ay ano palitan ang pangalan
hahanapin sa bawat filename at ang pangalawang term (.prg
) ay kung ano ang papalit dito.
Ang gitnang bahagi ng utos, o sentral na ekspresyon, ay isang Perl 'regular na expression' at ito ang nagbibigay sa palitan ang pangalan
utusan ang kakayahang umangkop nito.
Pagbabago ng Ibang Mga Bahagi ng isang Filename
Binago namin ang mga extension ng filename sa ngayon, baguhin natin ang iba pang mga bahagi ng mga filename.
Sa direktoryo ay maraming mga file ng source code ng C. Ang lahat ng mga filename ay prefixed ng "slang_". Maaari natin itong suriin ls
.
ls sl * .c
Papalitan namin ang lahat ng mga paglitaw ng "slang_" ng "sl_". Pamilyar sa amin ang format ng utos. Binabago lang namin ang termino para sa paghahanap, ang term na kapalit, at ang uri ng file.
palitan ang pangalan ng 's / slang_ / sl_' * .c
Sa oras na ito ay naghahanap kami ng mga ".c" na mga file, at naghahanap para sa "slang_". Kailan man matatagpuan ang "slang_" sa isang filename ito ay pinalitan ng "sl_".
Maaari naming suriin ang resulta ng utos na iyon sa pamamagitan ng pag-uulit ng ls
utos mula sa itaas na may parehong mga parameter:
ls sl * .c
Pagtanggal ng Bahagi ng isang Filename
Maaari naming alisin ang isang bahagi ng isang filename sa pamamagitan ng pagpapalit ng termino para sa paghahanap nang wala.
ls * .c
palitan ang pangalan ng 's / sl _ //' * .c
ls * .c
Maaari nating makita mula sa ls
utusan na ang aming mga ".c" na file ay paunang naihanda na may "sl_". Tanggalin na natin lahat.
Ang palitan ang pangalan
sumusunod ang utos sa parehong format tulad ng dati. Hahanapin namin ang mga file na ".c". Ang termino para sa paghahanap ay "sl_", ngunit walang term na kahalili. Ang dalawang backslashes nang walang anumang bagay sa pagitan nila ay walang kahulugan, isang walang laman na string.
palitan ang pangalan
iproseso ang bawat ".c" na file sa pagliko. Hahanapin nito ang “sl_” sa filename. Kung ito ay mahahanap, mapalitan ito ng wala. Sa madaling salita, ang termino para sa paghahanap ay tinanggal.
Ang pangalawang paggamit ng ls
Kinukumpirma ng utos na ang "sl_" na unlapi ay tinanggal mula sa bawat ".c" na file.
Limitahan ang mga Pagbabago sa Mga Tiyak na Bahagi ng Mga Filename
Gumamit tayo ls
upang tingnan ang mga file na may string na "param" sa kanilang filename. Pagkatapos gagamitin namin palitan ang pangalan
upang mapalitan ang string na iyon ng string na "parameter". Gagamitin namin ls
minsan pa upang makita ang epekto ng palitan ang pangalan
nagkaroon ng utos sa mga file na iyon.
ls * param *
palitan ang pangalan ng 's / param / parameter' * .c
ls * param *
Natagpuan ang apat na mga file na mayroong "param" sa kanilang filename. param.c, param_one.c, at param_two.c lahat ay may "param" sa magsimula ng kanilang pangalan. ang third_param.c ay mayroong "param" sa magtapos ng pangalan nito, bago ang extension.
Ang palitan ang pangalan
maghanap ang utos para sa "param" saanman sa filename, at papalitan ito ng "parameter" sa lahat ng mga kaso.
Ang pangalawang paggamit ngls
ipinapakita sa atin ng utos na iyon talaga ang nangyari. Kung ang "param" ay nasa simula o sa dulo ng filename, pinalitan ito ng "parameter."
Maaari naming gamitin ang mga metacharacter ng Perl upang pinuhin ang pag-uugali ng panggitnang ekspresyon. Ang mga metacharacter ay mga simbolo na kumakatawan sa mga posisyon o pagkakasunud-sunod ng mga character. Halimbawa, ^
nangangahulugang "pagsisimula ng isang string," $
nangangahulugang "pagtatapos ng isang string," at .
nangangahulugang anumang solong character (bukod sa isang bagong character).
Gagamitin namin ang pagsisimula ng string metacharacter ( ^
) upang paghigpitan ang aming paghahanap sa simula ng mga filename.
ls * param * .c
palitan ang pangalan ng s / ^ parameter / value / '* .c
ls * param * .c
ls halaga * .c
Ang mga file na pinalitan namin ng pangalan ay nakalista, at maaari naming makita ang string na "parameter" ay sa simula ng tatlong mga filename at ito ay nasa dulo ng isa sa mga filename.
Ang aming palitan ang pangalan
ginagamit ng utos ang pagsisimula ng linya(^
) metacharacter bago ang termino para sa paghahanap na "parameter." Sinasabi nito palitan ang pangalan
upang isaalang-alang lamang ang termino para sa paghahanap na natagpuan kung ito ay nasa simula ng filename. Hindi pansinin ang "parameter" ng string ng paghahanap kung saan man sa iba pang lugar sa filename.
Pagsuri sa ls
, maaari nating makita na ang filename na mayroong "parameter" sa magtapos ng filename ay hindi nabago, ngunit ang tatlong mga filename na mayroong "parameter" sa magsimula ng kanilang mga pangalan ay napalitan ang string ng paghahanap ng pamalit na term na "halaga."
Ang kapangyarihan ng palitan ang pangalan
nasa kapangyarihan ni Perl. Ang lahat ng kapangyarihan ng Perl ay nasa iyo.
Paghahanap Sa Mga Pagpapangkat
palitan ang pangalan
ay may higit pang mga trick up ang manggas nito. Isaalang-alang natin ang kaso kung saan maaari kang magkaroon ng mga file na may katulad na mga string sa kanilang mga pangalan. Hindi sila eksaktong kapareho ng mga string, kaya't hindi gagana ang isang simpleng paghahanap at pagpapalit dito.
Sa halimbawang ito ginagamit namin ls
upang suriin kung aling mga file ang mayroon kami na nagsisimula sa "str". Mayroong dalawa sa kanila, string.c at pagsakal.c. Maaari naming palitan ang pangalan ng parehong mga string nang sabay-sabay gamit ang isang diskarteng tinatawag na pagpapangkat.
Ang sentral na pagpapahayag nito palitan ang pangalan
maghanap ang utos ng mga string sa loob ng mga filename na may pagkakasunud-sunod ng character na "stri" o "Stra" kung saan ang mga pagkakasunod-sunod na iyon ay kaagad na sinusundan ng "ng". Sa madaling salita, ang aming termino para sa paghahanap ay maghanap ng "string" at "Kakaiba". Ang term na kahalili ay "bang".
ls str * .c
palitan ang pangalan ng 's / (stri | Stra) ng / bang /' * .c
ls ban * .c
Gamitls
sa pangalawang pagkakataon ay kinukumpirma na ang string.c ay naging bang.c at sumakal.c ay ngayon bangle.c.
Paggamit ng Mga Pagsasalin Na may muling pangalan
Ang palitan ang pangalan
ang command ay maaaring magsagawa ng mga pagkilos sa mga filename na tinatawag na translation. Ang isang simpleng halimbawa ng isang pagsasalin ay pipilitin ang isang hanay ng mga filename sa malalaking titik.
Nasa palitan ang pangalan
utos sa ibaba na paunawa na hindi kami gumagamit ng an s /
upang simulan ang sentral na ekspresyon, ginagamit namin y /
. Sinasabi nitopalitan ang pangalan
hindi kami gumaganap ng kapalit; nagsasagawa kami ng isang pagsasalin.
Ang a-z
ang term ay isang Perl expression na nangangahulugang lahat ng mga maliliit na character sa pagkakasunud-sunod mula a hanggang sa z. Katulad nito, ang A-Z
ang term ay kumakatawan sa lahat ng malalaking titik sa pagkakasunud-sunod mula A hanggang Z.
Ang gitnang expression sa utos na ito ay maaaring paraphrased bilang "kung ang alinman sa mga maliliit na titik mula sa a hanggang z ay matatagpuan sa filename, palitan ang mga ito ng kaukulang mga character mula sa pagkakasunud-sunod ng mga malalaking character mula A hanggang Z."
Upang pilitin ang mga filename ng lahat ng mga file na ".prg" sa uppercase, gamitin ang utos na ito:
palitan ang pangalan ng ‘y / a-z / A-Z /’ * .prg
ls * .PRG
Ang ls
Ipinapakita sa amin ng utos na ang lahat ng mga ".prg" na mga filename ay nasa malalaki na ngayon. Sa katunayan, upang maging tumpak na tumpak, hindi na sila mga file na ".prg". Ang mga ito ay ".PRG" na mga file. Kaso sensitibo ang Linux.
Maaari nating baligtarin ang huling utos sa pamamagitan ng pag-reverse ng posisyon ng a-z
at A-Z
mga termino sa sentral na ekspresyon.
palitan ang pangalan ng ‘y / A-Z / a-z /’ * .PRG
ls * .prg
Hindi ka (Wo | Do) Matuto ng Perl sa Limang Minuto
Ang pagkuha sa mga mahigpit na gamit kay Perl ay mahusay na ginugol ng oras. Ngunit upang simulang gamitin ang mga kakayahan sa pag-save ng oras ng palitan ang pangalan
utos, hindi mo kailangang magkaroon ng maraming kaalaman sa Perl upang mag-ani ng malalaking mga benepisyo sa kapangyarihan, pagiging simple at oras.