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 1
– xargs'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.
- Linux'ta “Her Şey Bir Dosyadır” Açıklaması ve Dosya Türleri
- fswatch - Linux'taki Dosyaları ve Dizin Değişikliklerini veya Değişikliklerini İzler
- Fasd – Dosyalara ve Dizinlere Hızlı Erişim Sağlayan Bir Komut Satırı Aracı
- 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.