Yeniden Adlandır – Linux'ta Birden Çok Dosyayı Yeniden Adlandırmak İçin Bir Komut Satırı Aracı


Linux'ta tek bir dosyayı yeniden adlandırmak için sıklıkla “mv” komutunu kullanırız. Ancak birden fazla veya grup dosyayı yeniden adlandırmak, terminalde bunu çok zor bir iş haline getirir.

Linux, yeniden adlandır adı verilen çok güçlü bir yerleşik araçla birlikte gelir. yeniden adlandır komutu, birden çok dosyayı veya grup dosyayı yeniden adlandırmak, dosyaları küçük harfle yeniden adlandırmak, dosyaları büyük harfle yeniden adlandırmak ve Perl ifadelerini kullanarak dosyaların üzerine yazmak için kullanılır.

"yeniden adlandır" komutu Perl betiğinin bir parçasıdır ve birçok Linux dağıtımında "/usr/bin/" altında bulunur. Yeniden adlandır komutunun yerini öğrenmek için “hangi” komutunu çalıştırabilirsiniz.

which rename
/usr/bin/rename
Yeniden Adlandırma Komutunun Temel Sözdizimi
rename 's/old-name/new-name/' files

Rename komutu, birkaç isteğe bağlı argümanın yanı sıra, rename komutuna asıl işi yapması için rehberlik eden zorunlu perl ifadesi ile birlikte gelir.

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
  1. -v: Başarıyla yeniden adlandırılan dosyaların adlarını yazdırın.
  2. -n: Hangi dosyaların yeniden adlandırılacağını gösterin.
  3. -f: Mevcut dosyaların üzerine yazmaya zorlayın.
  4. perleexpr: Perl İfadesi.

Bu yardımcı programın daha iyi anlaşılması için makalede bu komutun birkaç pratik örneğini tartıştık.

1. Temel Yeniden Adlandırma Komutu Örneği

.html” uzantılı bir sürü dosyanız olduğunu ve tüm “.html” dosyalarını “.php” olarak yeniden adlandırmak istediğinizi varsayalım. tek seferde. Örneğin, öncelikle “.html” uzantılı dosyaların listesini kontrol etmek için “ls -l” yapın.

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

Şimdi tüm bu dosyaların uzantısını “.html” yerine “.php“ olarak değiştirmek istiyorsunuz. Aşağıdaki “yeniden adlandır” komutunu aşağıda gösterildiği gibi perl ifadesi ile kullanabilirsiniz.

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

Not: Yukarıdaki komutta iki bağımsız değişken kullandık.

  1. İlk argüman, .html'yi .php ile değiştiren bir perl ifadesidir.
  2. İkinci argüman, rename komutuna tüm dosyaların *.php ile değiştirilmesini söyler.

Komut isteminde ls -l komutunu kullanarak tüm dosyaların “.php” uzantısıyla yeniden adlandırılıp adlandırılmadığını doğrulayalım.

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

Artık yukarıda tüm html dosyalarının php olarak yeniden adlandırıldığını görebilirsiniz.

2. Yeniden Adlandırma Komutunu Çalıştırmadan Önce Değişiklikleri Kontrol Edin

Kritik veya büyük yeniden adlandırma görevlerini yaparken, “-n” argümanıyla yeniden adlandır komutunu çalıştırarak değişiklikleri her zaman kontrol edebilirsiniz. “-n” parametresi size tam olarak hangi değişikliklerin gerçekleşeceğini söyleyecektir ancak değişiklikler gerçekte yapılmaz. Burada aşağıdaki komutun örneği verilmiştir.

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

Not: Yukarıdaki komut çıktısı yalnızca değişiklikleri görüntüler, ancak gerçekte, komutu “-n” anahtarı olmadan çalıştırmadığınız sürece değişiklikler yapılmaz.

3. Yeniden Adlandırma Çıktısını Yazdır

Rename komutunun yaptığı değişikliklere ilişkin herhangi bir bilgi görüntülemediğini gördük. Dolayısıyla, yeniden adlandır komutunun ayrıntılarını almak istiyorsanız (“-n” seçeneğini kullanarak yaptığımız gibi), burada tam metni yazdırmak için “-v” seçeneğini kullanırız. rename komutuyla yapılan tüm değişikliklerin ayrıntıları başarıyla.

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. Tüm Küçük Harfleri Büyük Harflere ve Tam Tersine Dönüştürün

Küçük harf adlara sahip tüm dosyaları toplu olarak büyük harf olarak yeniden adlandırmak için. Örneğin, aşağıdaki tüm dosyaları küçük'ten 'ye dönüştürmek istiyorum. >büyük harf.

Küçükten Büyük Harfe
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

Sadece aşağıdaki komutu Perl ifadesiyle kullanın.

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

Yukarıdaki komutu uyguladıktan sonra “ls -l” komutunu kullanarak değişiklikleri kontrol edebilirsiniz.

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

Yukarıdaki komutun aslında tüm küçük harfli dosya adlarını (.HTML uzantılı) büyük harf olarak yeniden adlandırdığını görebilirsiniz.

Büyük Harften Küçük Harfe

Benzer şekilde, aşağıdaki komutu kullanarak tüm büyük harf karakterleri de küçük harfe dönüştürebilirsiniz.

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. Dosya Adının İlk Harfini Büyük Harf Yapın

Her dosya adının yalnızca ilk harfini büyük harfle yazmak için aşağıdaki komutu kullanın.


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

6. Mevcut Dosyaların Üzerine Yaz

Mevcut dosyaların üzerine zorla yazmak istiyorsanız aşağıda gösterildiği gibi “-f” seçeneğini kullanın.

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

Yeniden adlandır komutu hakkında daha fazla bilgi edinmek isterseniz terminalde “man rename” yazın.

Komut satırından dosyaların birden fazla veya toplu olarak yeniden adlandırılmasıyla uğraşıyorsanız yeniden adlandır komutu çok kullanışlıdır. Bir deneyin ve dosyaların yeniden adlandırılması açısından ne kadar yararlı olduğunu bana bildirin.