Weboldal keresés

Átnevezés – Parancssori eszköz több fájl átnevezéséhez Linuxban


Gyakran használjuk az „mv” parancsot egyetlen fájl átnevezésére Linuxban. Több fájl vagy csoport átnevezése azonban nagyon megnehezíti a terminálban végzett feladatot.

A Linux egy nagyon hatékony beépített eszközzel rendelkezik, az úgynevezett átnevezés. A rename paranccsal több fájl vagy csoport átnevezése, fájlok kisbetűsre, fájlok nagybetűsre való átnevezése és fájlok perl-kifejezések használatával történő felülírása használható.

A „rename” parancs a Perl szkript része, és számos Linux disztribúción az „/usr/bin/” alatt található. A „which” parancs futtatásával megtudhatja az átnevezési parancs helyét.

which rename
/usr/bin/rename
Az Átnevezés parancs alapvető szintaxisa
rename 's/old-name/new-name/' files

Az átnevezés parancs néhány opcionális argumentumot tartalmaz, valamint a kötelező perl kifejezést, amely az átnevezés parancsot irányítja a tényleges munka elvégzéséhez.

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
  1. -v: A sikeresen átnevezett fájlok nevének kinyomtatása.
  2. -n: Megmutatja, hogy mely fájlok lettek volna átnevezve.
  3. -f: A meglévő fájlok felülírásának kényszerítése.
  4. perlexpr: Perl kifejezés.

A segédprogram jobb megértése érdekében a cikkben néhány gyakorlati példát tárgyaltunk erre a parancsra.

1. Egy egyszerű átnevezési parancs példa

Tegyük fel, hogy van egy csomó fájlja „.html” kiterjesztéssel, és az összes „.html” fájlt át szeretné nevezni „.php” névre. egy csapásra. Például először hajtsa végre az „ls -l” parancsot, hogy ellenőrizze a „.html” kiterjesztésű fájlok listáját.

ravisaive@tecmint:~$ 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

Most meg szeretné változtatni ezen fájlok kiterjesztését „.html”-ről „.php”-re. Használhatja a következő „rename” parancsot a perl kifejezéssel az alábbiak szerint.

ravisaive@tecmint:~$ rename 's/\.html$/\.php/' *.html

Megjegyzés: A fenti parancsban két argumentumot használtunk.

  1. Az első argumentum egy perl kifejezés, amely a .html-t .php-re cseréli.
  2. A második argumentum arra utasítja a rename parancsot, hogy az összes fájlt *.php-re cserélje le.

Ellenőrizzük, hogy az összes fájlt átnevezték-e „.php” kiterjesztésre, az ls -l parancs végrehajtásával.

ravisaive@tecmint:~$ 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

Most fent láthatja, hogy az összes html fájlt átnevezték php-re.

2. Ellenőrizze a változtatásokat az Átnevezés parancs futtatása előtt

A kritikus vagy nagyobb átnevezési feladatok elvégzése közben mindig ellenőrizheti a változtatásokat az átnevezés parancs futtatásával a „-n” argumentum használatával. A „-n” paraméter pontosan megmondja, hogy milyen változtatások történnének, de a változtatások nem valósak. Itt van egy példa az alábbi parancsra.

ravisaive@tecmint:~$ 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

Megjegyzés: A fenti parancskimenet csak a változásokat jeleníti meg, de valójában a változtatások nem hajtódnak végre, kivéve, ha a parancsot „-n” kapcsoló nélkül futtatja.

3. Nyomtatás átnevezése kimenet

Láttuk, hogy az átnevezés parancs nem jelenített meg semmilyen információt a változtatásokról. Tehát, ha szeretné megkapni az átnevezés parancs részleteit (mint ahogyan azt a „-n” opció használatával tettük), itt a „-v” opciót használjuk a teljes kinyomtatáshoz az átnevezés paranccsal sikeresen végrehajtott összes módosítás részleteit.

ravisaive@tecmint:~$ 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. Alakítsa át az összes kisbetűt nagybetűssé és Vise-Versa-ra

Az összes kisbetűs nevű fájl csoportos átnevezése nagybetűre. Például szeretném rejteni a következő fájlokat kisbetűről ra. >nagybetűvel.

Kis-nagybetű
ravisaive@tecmint:~$ 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

Csak használja a következő parancsot perl kifejezéssel.

ravisaive@tecmint:~$ rename 'y/a-z/A-Z/' *.html

Miután végrehajtotta a fenti parancsot, ellenőrizheti a módosításokat az „ls -l” végrehajtásával.

ravisaive@tecmint:~$ 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

Látható, hogy a fenti parancs valójában átnevezte az összes kisbetűs fájlnevet (.HTML kiterjesztéssel) nagybetűsre.

Nagybetűk és kisbetűk

Hasonlóképpen az összes nagybetűs karaktert kisbetűvé konvertálhatja a következő paranccsal.

ravisaive@tecmint:~$ rename 'y/A-Z/a-z/' *.HTML
ravisaive@tecmint:~$ 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. Írja nagybetűvel a fájlnév első betűjét

Ha csak az első betűt szeretné nagybetűvel írni az egyes fájlneveknek, használja a következő parancsot.


rename 's/\b(\w)/\U$1/g' *.ext

6. Írja felül a meglévő fájlokat

Ha erőszakkal szeretné felülírni a meglévő fájlokat, használja a „-f” opciót az alábbiak szerint.

ravisaive@tecmint:~$ rename -f 's/a/b/' *.html

Ha többet szeretne tudni az átnevezés parancsról, írja be a „man rename” kifejezést a terminálba.

Az rename parancs nagyon hasznos, ha fájlok többszöri vagy kötegelt átnevezésével foglalkozik a parancssorból. Tegyen egy próbát, és tudassa velem, mennyire hasznos a fájlok átnevezése szempontjából.