Tüm barındırma hizmetlerinde 15% tasarruf edin

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın: Skills Başlayın
Bölüm
Linux Özel Sunucular Sanal Sunucular

Linux Terminal’de Dosya Adını Değiştirme: Başlangıçtan İleri Seviyeye Kadar Tam Rehber

Dosyaları yeniden adlandırmak, herhangi bir işletim sisteminde en temel görevlerden biridir — ve Linux’ta, terminal’den doğrudan yürütüldüğünde olağanüstü güçlü hale gelir. Tek bir dosya adını değiştirmeniz gerekse de karmaşık desenler kullanarak binlerce dosyayı toplu olarak yeniden adlandırmanız gerekse de, Linux’ta dosya yeniden adlandırmada uzmanlaşmak, geliştiriciler, sistem yöneticileri ve DevOps mühendisleri için gerekli bir beceridir.

Proje varlıklarını düzenlemekten günlük temizliğini otomatikleştirmeye ve dağıtım yapıtlarını hazırlamaya kadar, doğru araçları ve teknikleri bilmek size önemli ölçüde zaman kazandıracak, insan hatasını azaltacak ve ölçekte gerçek otomasyon kilidini açacaktır.

Linux Terminal’den Dosyalar Neden Yeniden Adlandırılır?

Komutlara dalmadan önce, terminal yaklaşımının birçok kullanım durumu için grafik dosya yöneticilerine neden tercih edildiğini anlamak değerdir:

  • Dosyaları organize etme tarih, tür, proje veya adlandırma kuralına göre
  • Döndürülen günlüklerin, geçici verilerin veya yedek arşivlerin otomatik temizlenmesi
  • Dosya adlarını standartlaştırma komut dosyaları, dağıtımlar veya API entegrasyonları için
  • Veri setlerini ön işleme geliştirme, araştırma veya veri bilimi boru hatlarında
  • CI/CD iş akışlarına entegrasyon, görüntü işleme boru hatları veya sürüm kontrol sistemleri

İster binlerce görüntü dosyasını yeniden adlandıran bir geliştirici, ister bir VPS Hosting sunucusundaki döndürülen günlükleri temizleyen bir sistem yöneticisi, ister dağıtım için yapı yapıtlarını hazırlayan bir DevOps mühendisi olun — aşağıdaki teknikler iş akışınızı dramatik şekilde daha verimli hale getirecektir.

Method 1: Basic File Renaming with mv

mv (move) komutu, dosyaları yeniden adlandırmak için standart, yerleşik Linux yardımcı programıdır. Ek kurulum gerektirmez ve her Linux dağıtımında çalışır.

Sözdizimi

mv old_filename.txt new_filename.txt

mv Neler Yapabilir

GörevKomut Örneği
Dosyayı yerinde yeniden adlandırmamv report.txt final_report.txt
Dosyayı başka bir dizine taşımamv report.txt /home/user/docs/
Aynı anda yeniden adlandırma ve taşımamv report.txt ../archive/final_report.txt

Pratik Örnek

mv file.txt ../archive/renamed_file.txt

Bu tek komut file.txt dosyasını renamed_file.txt olarak yeniden adlandırır ve bunu ../archive/ dizinine tek adımda taşır.

> Önemli: Bazı işletim sistemlerinden farklı olarak, Linux hedef dosya zaten varsa sizi uyarmaz. Orijinal dosya sessizce üzerine yazılacaktır. Onay istemek için -i (etkileşimli) bayrağını kullanın:

mv -i old_filename.txt new_filename.txt

Yöntem 2: rename ile Toplu Dosya Yeniden Adlandırma (Perl Tabanlı)

Birden fazla dosyayı aynı anda yeniden adlandırmak için, Perl tabanlı rename yardımcı programı mevcut en güçlü ve esnek araçtır. Perl uyumlu düzenli ifadeleri (PCRE) kullanarak, karmaşık yeniden adlandırma desenleri üzerinde ince kontrol sağlar.

Kurulum

# Debian / Ubuntu
sudo apt install rename

# RHEL / Fedora / CentOS
sudo dnf install prename

Temel Sözdizimi

rename 's/old_pattern/new_pattern/' *.txt

Bu, geçerli dizindeki tüm .txt dosyalarını yeniden adlandırır ve dosya adında old_pattern öğesinin her oluşumunu new_pattern ile değiştirir.

Yaygın rename Kullanım Durumları

AmaçKomut
Tüm .jpg dosyalarına önek eklerename 's/^/IMG_/' *.jpg
.bak uzantısını dosya adlarından kaldırrename 's/.bak$//' *.bak
.JPG öğesini küçük harf .jpg öğesine dönüştürrename 's/.JPG$/.jpg/i' *.JPG
Boşlukları alt çizgilerle değiştirrename 's/ /_/g' *
Sayısal sonek deseni eklerename 's/file/file_v2/' *.txt

Yürütmeden Önce Kuru Çalıştırma

Bu, toplu dosya yeniden adlandırma sırasında tartışılmaz en önemli en iyi uygulamadır. Herhangi bir dosyayı gerçekten değiştirmeden değişiklikleri önizlemek için -n bayrağını kullanın:

rename -n 's/ /_/g' *

Çıktı, tam olarak neyin yeniden adlandırılacağını gösterecek ve deseni gerçekleştirmeden önce doğrulamanıza izin verecektir.

Yöntem 3: mmv ile Toplu Dosya Yeniden Adlandırma

mmv (toplu taşıma) yardımcı programı, normal ifadeler yerine joker karakter sözdizimi kullanarak birden fazla dosyayı yeniden adlandırmak için desen tabanlı bir yaklaşım sağlar. rename kadar esnek değildir ancak daha basit görevler için okunması daha kolaydır.

Kurulum

sudo apt install mmv

Örnek Kullanım

mmv "*.jpg" "photo_#1.jpg"

Bu, geçerli dizindeki her .jpg dosyasını yeniden adlandırır ve her dosya adının başına photo_ ekler. #1 yer tutucu, kaynak desenden joker karakter eşleşmesini yakalar.

Yöntem 4: find + mv + Bash ile Özyinelemeli Yeniden Adlandırma

İç içe geçmiş dizinleri kapsayan karmaşık yeniden adlandırma mantığı için, find, mv ve bash komut dosyasını birleştirmek maksimum kontrol ve esneklik sağlar.

Örnek: Tüm .txt Dosyalarında Tireleri Alt Çizgilerle Değiştirme (Özyinelemeli)

find . -type f -name "*.txt" | while read file; do
    new=$(echo "$file" | sed 's/-/_/g')
    mv "$file" "$new"
done

Nasıl çalışır:

  1. find . -type f -name "*.txt" — geçerli dizinden başlayarak alt dizinler dahil olmak üzere tüm .txt dosyalarını bulur
  2. while read file — her sonuç üzerinde yineleme yapar
  3. sed 's/-/_/g' — tüm tireleri alt çizgilerle değiştirerek yeni dosya adını oluşturur
  4. mv "$file" "$new" — gerçek yeniden adlandırmayı gerçekleştirir

Bu yaklaşım güvenli, oldukça esnek ve derin iç içe geçmiş dizin yapılarında sorunsuz çalışır — büyük, karmaşık dosya hiyerarşilerini yönetebileceğiniz Dedicated Servers üzerinde kullanım için idealdir.

Yöntem 5: for Döngüleri ile Dosyaları Yeniden Adlandırma

Tek bir dizin içinde basit toplu işlemler için, bash’teki basit bir for döngüsü genellikle en hızlı çözümdür.

Örnek: Tüm .log Dosyalarına Önek Ekleme

for f in *.log; do
    mv "$f" "archived_$f"
done

Örnek: Tüm .txt Dosyalarına Zaman Damgası Ekleme

for f in *.txt; do
    mv "$f" "$(date +%Y%m%d)_$f"
done

Örnek: Dosya Adlarında Alt Dizeyi Değiştirme

for f in *report*; do
    mv "$f" "${f/report/summary}"
done

${variable/pattern/replacement} söz dizimi, yerel bir bash parametre genişletme özelliğidir — harici araç gerekmez.

Karşılaştırma: Hangi Aracı Kullanmalısınız?

AraçEn İyi KullanımRegex DesteğiÖzyinelemeliKurulum Gerekli
mvTek dosya yeniden adlandırmaHayırHayırHayır (yerleşik)
renameKarmaşık toplu yeniden adlandırmaEvet (PCRE)Hayır (find ile kullanın)Evet
mmvBasit joker karakter toplu yeniden adlandırmaHayır (joker karakterler)SınırlıEvet
find + mvÖzyinelemeli, karmaşık mantıksed/awk aracılığıylaEvetHayır (yerleşik)
for döngüsüBir dizinde basit toplu işlemBash genişletmesi aracılığıylaHayırHayır (yerleşik)

Linux’ta Dosyaları Yeniden Adlandırma için En İyi Uygulamalar

Bu yönergeleri takip etmek verilerinizi koruyacak ve özellikle üretim sunucularında toplu yeniden adlandırma işlemleri gerçekleştirirken maliyetli hataları önleyecektir.

1. Her Zaman Önce Bir Deneme Çalışması Yapın

Herhangi bir toplu yeniden adlandırmayı çalıştırmadan önce değişiklikleri önizleyin:

rename -n 's/ /_/g' *

-n bayrağı, gerçek değişiklikler yapmadan *ne olacağını* gösterir. Bu, büyük ölçekli işlemler için vazgeçilmezdir.

2. Her Zaman Değişkenlerinizi Tırnak İçine Alın

Dosya adları boşluk, özel karakterler veya yeni satırlar içerebilir. Beklenmeyen sözcük bölünmesini önlemek için değişkenleri her zaman çift tırnak içine alın:

mv "$old_file" "$new_file"

3. Toplu İşlemlerden Önce Yedek Alın

Binlerce dosyayı yeniden adlandırmadan önce, bir yedek veya anlık görüntü oluşturun. Yönetilen bir barındırma ortamında çalışıyorsanız, sağlayıcınızın otomatik anlık görüntüler sunup sunmadığını kontrol edin. AlexHost’un cPanel’li VPS planları, kontrol panelinden doğrudan kolay yedek yönetimi içerir.

4. Kod ve Yapılandırma Dosyaları için Sürüm Kontrolü Kullanın

Bir Git deposunda izlenen dosyaları yeniden adlandırıyorsanız, geçmişi korumak için düz mv yerine git mv kullanın:

git mv old_script.sh new_script.sh

5. Önce Küçük Bir Alt Küme ile Test Edin

Binlerce dosya ile çalışırken, yeniden adlandırma komutunuzu tam veri seti üzerinde çalıştırmadan önce küçük bir örnek dizinde test edin:

mkdir test_rename && cp *.jpg test_rename/ && cd test_rename
rename -n 's/IMG_/PHOTO_/' *.jpg

6. Yeni Satırlar İçeren Dosya Adlarını Dikkatli Bir Şekilde İşleyin

find kullanırken borularla, yeni satırlar içeren dosya adları sorunlara neden olabilir. Maksimum güvenlik için -print0 ve read -d '' kullanın:

find . -type f -name "*.txt" -print0 | while IFS= read -r -d '' file; do
    new=$(echo "$file" | sed 's/-/_/g')
    mv "$file" "$new"
done

Gerçek Dünya Kullanım Örnekleri

Bir Sunucuda Log Dosya Adlarını Standardize Etme

Linux sunucusunda log rotasyonunu yöneten sistem yöneticileri, arşivlenmiş logları tutarlı bir adlandırma kuralına göre yeniden adlandırmak zorunda kalırlar:

for f in /var/log/nginx/*.log.*; do
    mv "$f" "${f/access/nginx_access}"
done

Bir Web Uygulaması için Görüntü Varlıklarını Hazırlama

Bir web uygulamasını Paylaşımlı Web Hosting hizmetine dağıtan geliştiriciler, yükleme öncesinde görüntü dosya adlarını normalleştirmek zorunda kalırlar:

# Convert all image filenames to lowercase and replace spaces with hyphens
rename 's/ /-/g' *.jpg *.png *.gif
rename 'y/A-Z/a-z/' *.jpg *.png *.gif

Bir Domain Taşınması için Dosyaları Toplu Olarak Yeniden Adlandırma

Bir web sitesini yeni bir domain’e taşırken ve içeriği yeniden yapılandırırken, yüzlerce yapılandırma veya şablon dosyasını güncellemeniz gerekebilir. Uygun Domain Kaydı ve DNS yönetimi ile birlikte, temiz bir dosya yapısı taşınmaları çok daha sorunsuz hale getirir:

find . -type f -name "*.conf" | while read file; do
    new=$(echo "$file" | sed 's/olddomain/newdomain/g')
    mv "$file" "$new"
done

Sık Sorulan Sorular

Linux’ta bir yeniden adlandırma işlemini geri alabilir miyim?

Linux, terminal komutları için yerel bir geri alma işlevine sahip değildir. Bu nedenle kuru çalıştırmalar ve yedeklemeler kritiktir. Git kullanıyorsanız, git mv işlemleri git checkout ile geri alınabilir.

mv ve rename arasındaki fark nedir?

mv, tek dosyaları taşımak ve yeniden adlandırmak için tasarlanmış yerleşik bir Unix yardımcı programıdır. rename, düzenli ifadeleri kullanarak toplu yeniden adlandırma için özel olarak tasarlanmış Perl tabanlı bir araçtır. Tek dosyalar için mv kullanın. Desenli toplu işlemler için rename kullanın.

rename tüm Linux dağıtımlarında aynı şekilde çalışır mı?

rename iki yaygın sürümü vardır: Perl tabanlı sürüm (Debian/Ubuntu’da yaygın) ve daha basit C tabanlı sürüm (bazı RHEL tabanlı sistemlerde yaygın). Perl sürümü tam düzenli ifadeleri destekler; C sürümü daha basit dize değişimini kullanır. Hangi sürümün yüklü olduğunu her zaman rename --version ile doğrulayın.

Boşluk içeren dosya adlarını nasıl yeniden adlandırırım?

Dosya adlarınızı ve değişkenlerinizi her zaman tırnak içine alın:

mv "my old file.txt" "my_new_file.txt"

Veya global değişim ile rename kullanın:

rename 's/ /_/g' *

Sonuç

Linux terminalinde dosya yeniden adlandırma, basit tek seferlik değişikliklerden binlerce dosya arasında tamamen otomatikleştirilmiş toplu işlemlere kadar ölçeklenen bir beceridir. Ustalaşmanız gereken temel araçlar şunlardır:

  • mv — hızlı, bireysel yeniden adlandırmalar için
  • rename — güçlü regex tabanlı toplu işlemler için
  • find + mv — özyinelemeli, çok dizinli iş akışları için
  • for döngüleri — basit, okunabilir toplu komut dosyaları için

Her zaman değişiklikleri kuru çalıştırmalarla önizleyin, değişkenlerinizi tırnak içine alın ve toplu yeniden adlandırma işlemleri yürütmeden önce kritik verileri yedekleyin.

Bir Linux sunucusunda dosya yönetiyorsanız ve güvenilir, yüksek performanslı bir barındırma ortamı arıyorsanız, AlexHost’un VPS Hosting ve Dedicated Servers‘den tamamen yönetilen VPS Control Panels‘e kadar — hepsi Linux iş yükleri için optimize edilmiş — çözüm yelpazesini keşfedin.