Linux'ta Tüm Dosyaları ve Dizin Adlarını Küçük Harf Olarak Yeniden Adlandırın


Önceki yazımızda belirli bir dizin içindeki dosya ve alt dizinlerin sayısının nasıl sayılacağını anlatmıştık. Bu kılavuz size Linux'ta tüm dosya ve dizin adlarını küçük harfe nasıl yeniden adlandıracağınızı gösterecektir.

Ayrıca Okuyun: Linux'ta En Popüler Dizinler ve Dosyalar (Disk Alanı) Nasıl Bulunur?

Bunu başarmanın birkaç yolu var ama biz en etkili ve güvenilir yöntemlerden ikisini açıklayacağız. Bu kılavuzun amacı doğrultusunda, aşağıdaki yapıya sahip Files adında bir dizin kullandık:

find Files -depth

1. Find, xargs ve Komutları Birlikte Yeniden Adlandırmayı Kullanma

rename, Linux'ta birden fazla dosyayı aynı anda yeniden adlandırmak için kullanılan basit bir komut satırı yardımcı programıdır. Belirli bir dizindeki tüm dosyaları veya alt dizinleri aşağıdaki gibi küçük harflerle yeniden adlandırmak için find yardımcı programıyla birlikte kullanabilirsiniz:

find Files -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

Yukarıdaki komutta kullanılan seçeneklerin açıklaması.

  • -deepth – her dizinin içeriğini dizinin kendisinden önce listeler.
  • -n 1xargs'a find çıktısından komut satırı başına en fazla bir bağımsız değişken kullanması talimatını verir.

Files dizinindeki dosyaları ve alt dizinleri küçük harflerle yeniden adlandırdıktan sonraki örnek çıktı.

Aşağıda açıklandığı gibi find ve mv komutlarını bir komut dosyasında kullanmanın başka bir alternatif yolu.

2. Shell Komut Dosyasında find ve mv Komutlarını Kullanmak

İlk önce betiğinizi oluşturun (tercih ettiğiniz herhangi bir ismi verebilirsiniz):

cd ~/bin
vi rename-files.sh

Daha sonra içerisine aşağıdaki kodu ekleyin.

#!/bin/bash
#print usage 
if [ -z $1 ];then
        echo "Usage :$(basename $0) parent-directory"
        exit 1
fi

#process all subdirectories and files in parent directory
all="$(find $1 -depth)"



for name in ${all}; do
        #set new name in lower case for files and directories
        new_name="$(dirname "${name}")/$(basename "${name}" | tr '[A-Z]' '[a-z]')"

        #check if new name already exists
        if [ "${name}" != "${new_name}" ]; then
                [ ! -e "${new_name}" ] && mv -T "${name}" "${new_name}"; echo "${name} was renamed to ${new_name}" || echo "${name} wasn't renamed!"
        fi
done

echo
echo
#list directories and file new names in lowercase
echo "Directories and files with new names in lowercase letters"
find $(echo $1 | tr 'A-Z' 'a-z') -depth

exit 0

Dosyayı kaydedip kapatın, ardından betiği çalıştırılabilir hale getirin ve çalıştırın:

chmod +x rename-files.sh
rename-files.sh Files     #Specify Directory Name

Aşağıdaki ilgili makaleleri de okumak isteyebilirsiniz.

  1. Linux'ta “Her Şey Bir Dosyadır” Açıklaması ve Dosya Türleri
  2. fswatch - Linux'taki Dosyaları ve Dizin Değişikliklerini veya Değişikliklerini İzler
  3. Fasd – Dosyalara ve Dizinlere Hızlı Erişim Sağlayan Bir Komut Satırı Aracı
  4. FSlint – Linux'ta Yinelenen Dosyalar Nasıl Bulunur ve Kaldırılır

Bu kılavuzumuzda Linux'ta tüm dosya ve dizinlerin nasıl küçük harfe dönüştürüleceğini anlattık. Herhangi bir hatayla karşılaşırsanız lütfen aşağıdaki geri bildirim formunu kullanarak bize ulaşın. Bize aynı şeyi yapmanın başka yöntemlerini de önerebilirsiniz.