Bash'de Boşluk İçeren Dosya Adları Nasıl Kullanılmalı?

Linux, sistem için komutları çalıştırmak için varsayılan bir kabuk (aka Bourne, yine de kabuk) seçeneğine sahiptir. Çoğu programcı, bash'ın sağladığı esneklik ve güçlü komut satırı yorumlayıcısı nedeniyle cmd yerine bash'ı tercih eder. Ancak, çoğu kullanıcının basılan boşluklarla geçen dosya adlarını işlemeye çalışırken hala sorunları olacaktır. Çünkü boşluklar, dosya adlarında olduğu gibi bash ile aynı sayılmaz.

Adında boşluk olan dosyalar

Neden Spaces ile Dosya Adı Bash tarafından tanınmıyor?

Bash'te, kaçış karakteri (\) veya tırnak işareti olmadan birden fazla kelime yazarsanız, tüm kelimeleri argüman olarak değerlendirir. Bu, ' cd ' ile dizini değiştiriyorsanız veya ' cat ' komutlarıyla dosyalara erişmeye çalışıyorsanız, tüm işlemler için geçerlidir. Bunları kullandıktan sonra yazdığınız her şey bir argüman olarak kabul edilecektir. Örneğin:

 kedi dosyası name.txt 

Kaçış karakteri veya alıntı kullanmadan komutu çalıştırma

Not : Dosya adınız herhangi bir şey olabilir, ancak bu makale için örnek olarak “ file name.txtkullanacağız .

Burada ' cat ' komutu, dosya ve adı tek bir argüman yerine iki argüman olarak kabul edecektir. Bununla birlikte, eğer kaçış karakterini veya alıntıları kullanırsanız, bash shell bunu “ file name.txt ” olacak tek bir argüman olarak kabul edecektir.

Bash İçinde Boşluklu Dosya Adı

Addaki boşluklar için kullanılabilecek birkaç yöntem vardır. En iyi uygulama, gelecekte dosya adları için boşluklardan kaçınmaktır. Basit bir yöntem, boşluklara erişmeye ve kaldırmaya çalıştığınız dosyayı yeniden adlandırmak olacaktır. Diğer bazı yöntemler, dosya adında boşluk içeren tek veya çift tırnak işaretleri kullanıyor veya boşluktan hemen önce escape (\) sembolünü kullanıyor. Size nasıl çalıştığını göstermek için uygulamalı örneklerle yöntemler sunacağız.

Yöntem 1: Tek ve Çift Teklifleri Kullanma

  1. Terminal'i açmak için Ctrl + Alt tuşlarını basılı tutun ve T tuşuna basın.
  2. Şimdi dosyanın bulunduğu yere dizini değiştirin.

    (dosya yolunda / dizinde otomatik olarak alıntılar yapan ' cat ' komutundan sonra dosyayı terminalde sürükleyip bırakabilirsiniz )

     cd Masaüstü 

    Dizini değiştirme

    Not : Masaüstü, erişmeye çalıştığınız konuma değiştirilebilir.

  3. Adında boşluk içeren bir metin dosyasını okumak için aşağıdaki komutu yazın:
     cat 'dosya adı.txt' 

    veya

     kedi "dosya adı.txt" 

    İsim hatasındaki boşlukları önlemek için teklifleri kullanma
  4. Tek ve çift alıntılar aynı şekilde sonuçlanacaktır. Bazı durumlarda, ikisini de denemeniz ve hangisinin işe yaradığını görmeniz gerekir.

Yöntem 2: Boşluk Kaçış Karakterini Kullanma

  1. Terminal'i açmak için Ctrl + Alt tuşlarını basılı tutun ve T tuşuna basın.
  2. Aşağıdaki komutu kullanarak dosyanın bulunduğu dizini değiştirin.
     cd Masaüstü 

    Not : Konum adınızı Masaüstü yerine koyun.

  3. Şimdi komutu yazın ve adında boşluk olan her yerde kaçış karakterini kullanın:
     kedi dosyası \ name.txt 

    Boşluk hatasını önlemek için kaçış karakterini kullanma

Bonus: Tekliflerin Kullanımı ve Kaçış

Bazen dizini komutta kullanırken, genel yoldaki alıntıları kullanmanın sonuçları olabilir. Bunun sebebi, ' mv ' veya ' cp ' gibi bazı komutların, eğer alıntı bütünüyle kullanılıyorsa yolu dosya kaynağı olarak görmesidir. ' Cp ' gibi komutların düzgün çalışabilmesi için kaynak ve hedef için ayrı ayrı teklif vermeniz gerekir. Ayrıca, yol için kaçış karakterini kullanmanın çok daha karmaşık olduğunu ve kullanıcıların hata yapabileceğini gösteren aşağıdaki örneği de kontrol edebilirsiniz.

Alıntılar ve kaçış karakteri arasındaki fark

Ilginç Haberler