Pārdēvēt - komandrindas rīks vairāku failu pārdēvēšanai Linux
Mēs bieži izmantojam komandu “mv”, lai pārdēvētu vienu failu Linux. Tomēr vairāku failu vai failu grupas pārdēvēšana ātri padara to par ļoti sarežģītu uzdevumu terminālā.
Linux nāk ar ļoti jaudīgu iebūvētu rīku, ko sauc par pārdēvēšanu. Pārdēvēšanas komandu izmanto, lai pārdēvētu vairākus failus vai grupas, pārdēvētu failus par mazajiem burtiem, pārdēvētu failus par lielajiem un pārrakstītu failus, izmantojot perl izteiksmes.
Komanda “pārdēvēt” ir Perl skripta daļa, un tā daudzos Linux izplatījumos atrodas sadaļā “/ usr/bin /”. Jūs varat palaist komandu “kurš”, lai uzzinātu komandas pārdēvēšanas vietu.
$ which rename /usr/bin/rename
rename 's/old-name/new-name/' files
Komandā pārdēvēt ir daži izvēles argumenti, kā arī obligāta perl izteiksme, kas virza komandas pārdēvēšanu faktiskā darba veikšanai.
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
- -v: veiksmīgi pārdēvēto failu nosaukumi.
- -n: parādiet, kādi faili būtu pārdēvēti.
- -f: piespiedu kārtā pārrakstīt esošos failus.
- perlexpr: Perla izteiksme.
Lai labāk izprastu šo lietderību, rakstā esam apsprieduši dažus šīs komandas praktiskus piemērus.
1. Komandu pamata pārdēvēšanas piemērs
Pieņemsim, ka esat izveidojis vairākus failus ar paplašinājumu “.html” un vienā reizē vēlaties pārdēvēt visus “.html” failus uz “.php”. Piemēram, vispirms veiciet “ls -l”, lai pārbaudītu failu sarakstu ar paplašinājumu “.html”.
# [email :~$ ls -l total 22532 -rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html -rw-rw-r-- 1 ravisaive ravisaive 588895 Oct 10 12:10 entertainment.html -rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html -rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html -rw-rw-r-- 1 ravisaive ravisaive 938895 Oct 10 12:10 news.html -rw-rw-r-- 1 ravisaive ravisaive 938937 Oct 10 12:11 photos.html -rw-rw-r-- 1 ravisaive ravisaive 978137 Oct 10 12:11 sports.html
Tagad jūs vēlaties mainīt visu šo failu paplašinājumu no “.html” uz “.php”. Jūs varat izmantot šādu komandu “pārdēvēt” ar perl izteiksmi, kā parādīts zemāk.
[email :~$ rename 's/\.html$/\.php/' *.html
Piezīme. Iepriekš minētajā komandā mēs izmantojām divus argumentus.
- Pirmais arguments ir perla izteiksme, kas aizstāj .html ar .php.
- Otrais arguments liek komandai pārdēvēt aizstāt visus failus ar * .php.
Pārbaudīsim, vai visi faili tiek pārdēvēti par “.php” paplašinājumu, uzvednē veicot ls -l.
[email :~$ ls -l total 22532 -rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.php -rw-rw-r-- 1 ravisaive ravisaive 588895 Oct 10 12:10 entertainment.php -rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.php -rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.php -rw-rw-r-- 1 ravisaive ravisaive 938895 Oct 10 12:10 news.php -rw-rw-r-- 1 ravisaive ravisaive 938937 Oct 10 12:11 photos.php -rw-rw-r-- 1 ravisaive ravisaive 978137 Oct 10 12:11 sports.php
Tagad jūs varat redzēt iepriekš, ka visi html faili tiek pārdēvēti par php.
2. Pārbaudiet izmaiņas pirms komandas pārdēvēšanas palaišanas
Veicot kritiskus vai lielākus pārdēvēšanas uzdevumus, jūs vienmēr varat pārbaudīt izmaiņas, palaižot komandu pārdēvēt ar argumentu “-n”. Parametrs “-n” precīzi pateiks, kādas izmaiņas notiks, taču izmaiņas netiek veiktas pa īstam. Šeit ir zemāk redzamās komandas piemērs.
[email :~$ rename -n 's/\.php$/\.html/' *.php cricket.php renamed as cricket.html entertainment.php renamed as entertainment.html health.php renamed as health.html lifestyle.php renamed as lifestyle.html news.php renamed as news.html photos.php renamed as photos.html sports.php renamed as sports.html
Piezīme. Iepriekšminētajā komandas izvadē tiek parādītas tikai izmaiņas, taču patiesībā izmaiņas netiek veiktas, ja vien jūs neizpildāt komandu bez “-n” slēdža.
3. Drukājiet pārdēvēt izvadi
Mēs redzējām, ka pārdēvēšanas komanda neparādīja nekādu informāciju par veiktajām izmaiņām. Tātad, ja vēlaties iegūt detalizētu informāciju par komandas pārdēvēšanu (tāpat kā mēs to darījām, izmantojot opciju “-n”), šeit mēs izmantojam opciju “-v”, lai veiksmīgi izdrukātu pilnīgu informāciju par visām izmaiņām, kas veiktas, pārdēvējot komandu.
[email :~$ rename -v 's/\.php$/\.html/' *.php cricket.php renamed as cricket.html entertainment.php renamed as entertainment.html health.php renamed as health.html lifestyle.php renamed as lifestyle.html news.php renamed as news.html photos.php renamed as photos.html sports.php renamed as sports.html
4. Pārvērst visus mazos burtus uz lielajiem un Vise-Versa
Lai visus failus ar mazo burtu nosaukumiem pārdēvētu par lielajiem burtiem. Piemēram, es vēlos slēpt visus šos failus no mazajiem burtiem līdz lielajiem burtiem.
[email :~$ ls -l total 22532 -rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html -rw-rw-r-- 1 ravisaive ravisaive 588895 Oct 10 12:10 entertainment.html -rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html -rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html -rw-rw-r-- 1 ravisaive ravisaive 938895 Oct 10 12:10 news.html -rw-rw-r-- 1 ravisaive ravisaive 938937 Oct 10 12:11 photos.html -rw-rw-r-- 1 ravisaive ravisaive 978137 Oct 10 12:11 sports.html
Vienkārši izmantojiet šo komandu ar perl izteiksmi.
[email :~$ rename 'y/a-z/A-Z/' *.html
Kad esat izpildījis iepriekš minēto komandu, varat pārbaudīt izmaiņas, veicot “ls -l”.
[email :~$ ls -l total 22532 -rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 CRICKET.HTML -rw-rw-r-- 1 ravisaive ravisaive 588895 Oct 10 12:10 ENTERTAINMENT.HTML -rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 HEALTH.HTML -rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 LIFESTYLE.HTML -rw-rw-r-- 1 ravisaive ravisaive 938895 Oct 10 12:10 NEWS.HTML -rw-rw-r-- 1 ravisaive ravisaive 938937 Oct 10 12:11 PHOTOS.HTML -rw-rw-r-- 1 ravisaive ravisaive 978137 Oct 10 12:11 SPORTS.HTML
Jūs varat redzēt, ka iepriekš minētā komanda faktiski pārdēvēja visus mazos burtus (ar .HTML paplašinājumu) ar lielajiem burtiem.
Līdzīgi jūs varat arī pārveidot visas lielās un mazās rakstzīmes, izmantojot šo komandu.
[email :~$ rename 'y/A-Z/a-z/' *.HTML
[email :~$ ls -l total 22532 -rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html -rw-rw-r-- 1 ravisaive ravisaive 588895 Oct 10 12:10 entertainment.html -rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html -rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html -rw-rw-r-- 1 ravisaive ravisaive 938895 Oct 10 12:10 news.html -rw-rw-r-- 1 ravisaive ravisaive 938937 Oct 10 12:11 photos.html -rw-rw-r-- 1 ravisaive ravisaive 978137 Oct 10 12:11 sports.html
5. Sākot ar lielo burtu faila nosaukumā
Lai rakstītu ar lielo burtu tikai katra faila nosaukuma pirmo burtu, izmantojiet šādu komandu.
# rename 's/\b(\w)/\U$1/g' *.ext
6. Pārrakstīt esošos failus
Ja vēlaties spēcīgi pārrakstīt esošos failus, izmantojiet opciju “-f”, kā parādīts zemāk.
[email :~$ rename -f 's/a/b/' *.html
Ja vēlaties uzzināt vairāk par komandu pārdēvēt, terminālā ierakstiet “man rename”.
Komanda pārdēvēt ir ļoti noderīga, ja jums ir darīšana ar vairāku vai pakešdatņu failu pārdēvēšanu no komandrindas. Pamēģiniet un dariet man zināmu, cik daudz tas ir noderīgi failu pārdēvēšanas ziņā.