Linux'ta Dizin Nasıl Yeniden Adlandırılır
Yayınlanan: 2022-06-16Linux'ta bir dizini yeniden adlandırmak kolaydır ve bununla ilgili birçok yol vardır. Tek bir dizini yeniden adlandırmaktan birçok dizini bulmaya ve yeniden adlandırmaya kadar, bunu nasıl yapacağınız aşağıda açıklanmıştır.
Verileriniz Güvende
Dizinleri yeniden adlandırmak, zaman zaman hepimizin yapması gereken bir şeydir.
Bir dizin oluşturabilir ve adını yanlış yazabiliriz ve onu düzeltmek isteriz. Çoğu zaman, bir dizinin amacı zamanla veya bir projenin ömrü boyunca değişir ve adı yeni kullanımını yansıtacak şekilde ayarlamak istersiniz. Belki bir arşiv dosyasının sıkıştırmasını açtınız ve bu, dizin adlarının büyük harfle yazıldığı bir dizin ağacı oluşturdu ve bunları küçük harf olarak kullanmak istersiniz.
Nedeni ne olursa olsun. bir dizini yeniden adlandırmak, içinde tutulan verilere hiçbir şey yapmaz. Bu verilerin yolunu değiştirir, ancak yeniden adlandırılmış dizininizdeki dosyalara ve dizinlere dokunulmaz.
Sistem dizinlerini yeniden adlandırmayın. Sistem dosyalarına ve komutlara giden yolu değiştirmek, en azından bilgisayarınızın çalışması üzerinde zararlı bir etkiye sahip olacaktır. Bir dizini yeniden adlandırmak için sudo
kullanmanız gerekiyorsa - ne yaptığınızı gerçekten bilmiyorsanız - büyük olasılıkla onu yeniden adlandırmamalısınız.
mv Komutunu Kullanma
En basit durumlarda, gerçekten ihtiyacımız olan tek şey mv
komutudur. Bu, her Linux dağıtımının ayrılmaz bir parçasıdır, dolayısıyla yüklenecek bir şey yoktur.
mv
komutu, yazıldığı sırada 50 yaşın üzerindedir. Muhtemelen teletiplerden ve aptal terminallerden gerçek bilgisayara yavaş seri hatlar boyunca geçmek zorunda olan karakter sayısını azaltmak için kısa ve şifreli komutların moda olduğu Unix'in şafağından geliyor.
Aslında "taşı" anlamına gelir ve dosyaları dizinden dizine taşımak için kullanılabilir. Bir dosyayı zaten bulunduğu konuma taşır ve ona yeni bir ad verirseniz, dosyayı yeniden adlandırmış olursunuz. Aynı şeyi dizinlerle de yapabiliriz.
Bu dizinde iki alt dizin vardır.
ls
Bir dizini yeniden adlandırmak için mv komutunu kullanırız. Dizinin mevcut adını ve yeni adı sağlamamız gerekiyor.
mv eski eser arşivi-2
Yeniden adlandırmak istediğiniz dizin mevcut dizininizde değilse, dizin adının yanı sıra yolu da sağlayın.
mv ~/htg/eski çalışma ~/htg/arşiv-2
ls
Dosya Tarayıcıyı Kullanma
Dosya tarayıcıları dizinleri yeniden adlandırabilir. GNOME Dosyaları uygulamasındaki tuş vuruşu F2'dir. Bir dizini vurgulamak ve F2 tuşuna dokunmak “Klasörü Yeniden Adlandır” iletişim kutusunu açar.
Yeni adı yazın ve yeşil “Yeniden Adlandır” düğmesine tıklayın.
Dizin sizin için yeniden adlandırıldı.
Bu kadar basit.
Yeniden adlandırma Komutu
İhtiyaçlarınız bir dizini doğrudan yeniden adlandırmaktan daha karmaşıksa, rename
komutunu kullanmanız gerekebilir. Bu, dosyaları ve dizinleri yeniden adlandırmak için Perl ifadelerini kullanmanıza izin verir. Dizinleri yeniden adlandırmak için tamamen daha güçlü ve esnek bir yol sağlar.
Perl tabanlı rename
komutundan bahsedeceğiz. Linux çekirdek yardımcı programlarının bir parçası olan rename
adlı daha eski bir komut daha var. Muhtemelen kullanmak istediğimiz Perl rename
komutunu yüklemeniz gerekecek.
Mevcut rename
komutuyla isim çakışmalarını önlemek için, Perl rename
komutu Fedora'da prename
ve Manjaro'da perl-rename
olarak adlandırılır. Ubuntu'da rename
ve prename
komutlarının her ikisi de file-rename
adlı bir ikili dosyaya çözümlenen sembolik bağlantılardır.
Bu nedenle, Manjaro'da perl-rename
kullanmanız gerekecek komut ve Fedora'da prename
. Ubuntu'da rename
veya prename
kullanabilirsiniz.
Perl rename'i yüklemek için Ubuntu'da şunu yazmanız gerekir:
sudo apt yükleme yeniden adlandırma
Fedora'da komut şudur:
sudo dnf yükleme ön adı
Manjaro'da pakete perl-rename
adı verilir.
sudo pacman -Sy perl-yeniden adlandırma
Örnekler üzerinde çalışmak istiyorsanız, dağıtımınız için uygun komutu kullandığınızdan emin olun.
Yeniden adlandırma ile İlk Adımlar
rename
komutu Perl düzenli ifadelerini alır ve bunları bir dosyaya veya dizine ya da dosya veya dizin grubuna uygular.
Dizinimizde, diğer dizinlerden oluşan bir koleksiyonumuz var.
ls
İsimleri küçük harf, büyük harf ve karışık harf karışımıdır. Uygun bir ifade ile hepsini küçük harfe çevirebiliriz.
'y/AZ/az/' adını değiştir *
ls
Daha önce tamamen büyük harf olsalar da, tek büyük harf içerseler de, tüm dizinler artık küçük harfle yazılmıştır.
Tüm sihir ifadede bulunur. İfade, tek tırnak " '
" içine alınır. Tüm komutun anlamı budur.
- y : Bu, ilk karakter aralığındaki herhangi bir karakteri aramak ve ikinci karakter aralığından karşılık gelen karakterle değiştirmek anlamına gelir.
- /AZ/az/ : İlk aralık "A" ile "Z" arasındaki tüm harfler, ikinci aralık "a" ile "z" arasındaki tüm karakterlerdir.
- * : Yıldız joker karakteri, bunu tüm dizinlere uygula anlamına gelir.
Başka bir deyişle, komut "tüm dizinler için, eşdeğer küçük harf için tüm büyük harfleri değiştirin" şeklinde okunur.
Açıkçası, rename ile tek bir dizini rename
, ancak aşırıya kaçıyor. mv
kullanarak daha hızlı olacaksınız.
's/gamma/epsilon-2/' adını değiştir *
ls
Bu ifadedeki “s” ikame anlamına gelir. Adının “gama” olup olmadığını görmek için her dizini kontrol eder. Varsa “epsilon-2” ile değiştirir. Yine de bunun "gamma-zeta" adlı bir diziyle eşleşeceğini, örneğin "epsilon-2-zeta" olarak yeniden adlandırılacağını unutmayın.
İfadenin ilk yan tümcesine “ ^
” dizesinin başlangıcını ve “ $
” dizesinin sonunu ekleyerek bundan kaçınabiliriz.
ls
's/^gamma$/epsilon-2/' adını değiştir *
ls
Bu, “epsilon-2” dizinine dokunulmadan bırakır.
Diğer Komutlarla Yeniden Adlandırmayı Kullanma
Üzerinde çalışmak için rename
istediğimiz dizinleri bulmak için diğer komutları kullanabiliriz. Bir dizi iç içe dizinimiz varsa ve “-old” ile bitenleri “-archive” ile bitecek şekilde yeniden adlandırmak istiyorsak, bunu find
ve xargs
kullanarak başarabiliriz.
xargs
kullanmamız gerekiyor çünkü rename
borulu girişi kabul etmiyor. xargs
komutu, borulu girişi kabul ederek ve başka bir komutun komut satırına komut satırı parametresi olarak ekleyerek bu sorunun üstesinden gelir.
Komutumuz şöyle görünür:
bulmak . -derinlik -type d -adı "*-eski" | xargs -r "s/old$/archive/" adını değiştir
- . : Bul'a geçerli dizinde aramaya başlamasını söyleriz. Bu elbette herhangi bir yol olabilir.
- -depth : Önce derinlik araması kullanın. Bu, daha derin iç içe alt dizinlerin içeriğinin daha yüksek olanlardan önce işlendiği anlamına gelir.
- -type d : Dosyaları değil dizinleri arayın.
- -name “*-old” : Arama ipucu. Adları “-old” ile biten dizinleri arıyoruz.
- | : Çıktıyı
xargs
komutuna aktarıyoruz. - xargs -r :
-r
(boşsa çalıştırma yok), eşleşen dizin yoksa komutu çalıştırma anlamına gelir. - rename “s/old$/archive/” : Çalıştırılacak
rename
komutu.
Dizin ağacımız komuttan önceki gibi görünüyor.
Komutumuzu çalıştırıyoruz:
Ve iç içe olanlar dahil tüm eşleşen dizinlerin yeniden adlandırıldığını görebiliriz.
Kurslar için Atlar
Bir dizini yeniden adlandırmak, mv
başka bir şeye ihtiyaç duymaz. GUI uygulamalarını tercih ediyorsanız dosya tarayıcınızı kullanabilirsiniz. Yeniden adlandırılacak çok sayıda dizininiz varsa ve özellikle bir dizin ağacına dağılmışlarsa, rename
esnekliğine ihtiyacınız olacak.
İLGİLİ: Linux Terminalinden Dosyalar Nasıl Yönetilir: Bilmeniz Gereken 11 Komut