Çoğu işletim sistemi gibi, Linux da içindeki boşlukları olan dosya adlarını destekler. Ancak bu dosya adlarını komut satırında kullanmak her zaman basit değildir. İşte boşluklar içeren dosya adlarını işleyebilmenin birkaç yolu.
Mütevazi dosya adı
Linux dosya adlarındaki boşluklar neden bir acıdır
Mekanlardan nasıl alıntı ve kaçınır
Uzay problemini kaynağında nasıl düzeltebilirim
Sekme genişletme, boşluklarla uğraşmayı kolaylaştırır
BASH komut dosyalarında boşluklu dosya adları nasıl kullanılır
Aralıklı, ama lapa değil
Mütevazi dosya adı
Bilgisayarınızda depolanan her şey sabit sürücü Bir ismin olması gerekiyor. Bir isim olmadan hiçbir dosya olmazdı. Bilgisayarınız arttığında başlatılan tüm uygulamalar ve daemonlar ve kullandığınız tüm yazılımlar bir dosya sisteminde tanımlanmalı ve saklanmalıdır. Bu kimlik dosyanın adıdır. ”
Aynı şey oluşturduğunuz veya yüklediğiniz dosyalar için de geçerlidir. Tüm belgeleriniz, resimleriniz ve müziğiniz dosya adlarına ihtiyaç duyar. Dosya adları olmadan, dijital varlıklarınızın hiçbiri mevcut olamazdı. Dosya adları çok önemli olduğundan, Linux kompozisyonları hakkında olabildiğince birkaç kural koymaya çalışır.
Linux'ta, bir dosya adı ileri eğik çizgi dışında herhangi bir karakter içerebilir ”
/
”Ve boş karakter,
0x00
. NULL karakter bir dizenin sonunu işaretlemek için kullanılır, bu nedenle dizenin kendisinde bulunamaz veya Linux dosya adını null karakterin konumunda keser. "
/
”İleri eğik çizgi, dizin yollarında ayırıcı olarak kullanılır.
Dosya adları büyük / küçük harfe duyarlıdır ve 255 bayt uzunluğunda olabilir null karakter dahil. Dizin yolları, boş karakter dahil olmak üzere 4096 bayt uzunluğunda olabilir. Bunun uzunluğu olduğunu unutmayın bayt , doğrudan eşit olmayabilir karakter . Örneğin, 16 bit Unicode karakterleri her biri iki bayt alır.
Retro-bilgisayar meraklısı ve uzun anıları olanlar, kişisel bilgisayarların ilk günlerinde bunu bilecekler, Microsoft’un Disk İşletim Sistemi , DOS, vaka duyarsızdı ve sekiz karakterli bir dosya adı sınırı ve üç karakterli bir eklenti .
Dosyaları adlandırdığınızda çok düşünceli ve bazen yaratıcı olmalısınız. Karşılaştırıldığında, bugün sahip olduğumuz özgürlük, bu dosya için oluşturduğumuz açıklamadan başka bir şey hakkında çok az düşünerek dosyaları istediğimiz her şeyi adlandırabileceğimiz anlamına geliyor.
Ancak dosya adlarıyla, bizi en çok yönlendiren karakterler yazdığımız karakterler değil, aralarındaki boşluklar.
Linux dosya adlarındaki boşluklar neden bir acıdır
Bash gibi kabuklar, uzay ile ayrılmış bir kelime dizisini tek bir argüman değil, tek tek komut argümanları olarak yorumlayacaktır. İşte bir örnek, kullanmak
dokunmak
ile
Yeni bir dosya oluştur
"yeni dosyam.txt."
Gördüğümüz gibi,
LS
Bize oluşturulan üç dosya olduğunu gösterir: biri “My”, diğeri “Yeni” olarak adlandırılır ve diğeri “File.txt” olarak adlandırılır.
Dikkat
dokunmak
Şikayet etmedi veya bir hata atmadı. Yapmasını istediğimizi düşündüğünü gerçekleştirir. Bu yüzden bizi sessizce komut satırına geri döndürür. Kontrol etmek için motive olmazsak, plana göre işlerin gitmediğini bilmeyeceğiz.
İstediğimiz dosyayı oluşturmak için alıntı yapmalıyız veya kaçmalıyız.
Mekanlardan nasıl alıntı ve kaçınır
Tüm dosya adını teklif edersek,
dokunmak
Alıntılanan metni tek bir argüman olarak ele alması gerektiğini bilir.
Bu sefer beklediğimiz tek dosyayı alıyoruz.
Backsash karakterini kullanırsak aynı sonucu alabiliriz "
\
”Mekanlardan kaçmak için. Özel karakterler olarak muamele görmedikleri alanlardan “kaçarak”, yani bağımsız değişkenler - düz eski alanlar olarak kabul edilirler.
Bu işe yarıyor, ancak kaçan boşluklar dosya adlarını daha yavaş ve hataya eğilimli hale getiriyor. İçlerinde boşluk olan dizin adlarınız varsa işler gerçekten çirkin olabilir.
Bu komut, “Dir One” adlı bir dizinden tek bir metin dosyasını “Dir Two” adlı bir dizine kopyalar ve kopyayı BAK dosyası olarak kaydeder. Ve bu oldukça basit bir örnek.
Uzay problemini kaynağında nasıl düzeltebilirim
Kendi dosyalarınız ise, asla boşluk kullanma ve oluşturma (veya toplu yeniden ad ) böyle dosya adları.
Kuşkusuz, bu sağlam bir çözüm ama hala çirkin. Gösterge kullanmak gibi daha iyi seçenekler var "
-
"Veya alt çizgiler"
_
"Sözlerinizi ayırmak için.
Bunların her ikisi de sorunu ortadan kaldıracak ve okunabilir. Dosya adlarınıza ekstra karakter eklemek istemiyorsanız, kullanabilirsiniz. Deve Dosya adlarınızı okunabilir hale getirmek için:
Sekme genişletme, boşluklarla uğraşmayı kolaylaştırır
Tabii ki, bir adlandırma sözleşmesi benimsemek ve buna bağlı kalmak yalnızca kendi dosyalarınızla uğraşırken yardımcı olacaktır. Başka herhangi bir yerden gelen dosyaların kabul ettiğiniz adlandırma sözleşmesini takip etmesi olası değildir.
Bizim için dosya adlarını doğru bir şekilde “doldurmanıza” yardımcı olmak için sekme genişlemesini kullanabilirsiniz. Diyelim ki istiyoruz
silmek
“Dir Two” da oluşturduğumuz BAK dosyası,
RM
.
“Rm dir” yazarak başlıyoruz çünkü kullanıyoruz
RM
komuta ve dizin adının “dir” ile başladığını biliyoruz.
“Sekme” tuşuna basıldığında, geçerli dizindeki eşleşmeler için BASH'ın taramasına neden olur.
“Dir” ile başlayan iki dizin vardır ve her iki durumda da bir sonraki karakter bir alandır. Yani Bash backsash karakterini ekliyor "
\
”Ve bir alan. Bash daha sonra bir sonraki karakteri sağlamamızı bekler. Bu dizindeki iki olası eşleşme arasında ayrım yapmak için bir sonraki karakterine ihtiyaç duyar.
“İki” için bir “T” yazacağız ve ardından bir kez daha “sekme” tuşuna basın.
Bash bizim için dizin adını tamamlar ve dosya adının başlangıcını yazmamızı bekler.
Bu dizinde yalnızca bir dosyamız var, bu nedenle dosya adının ilk harfini yazan “M”, Bash'e hangi dosyayı kullanmak istediğimizi bildirmek için yeterlidir. “M” yazmak ve “sekme” tuşuna basmak bizim için dosya adını tamamlar ve "Enter" komutu yürütür.
Sekme genişletme, dosya adlarını doğru almanızı kolaylaştırır ve ayrıca genel olarak komut satırında gezinmeyi ve yazmayı hızlandırır.
İLGİLİ: Herhangi bir işletim sistemine daha hızlı komutları yazmak için sekme tamamlamayı kullanın
BASH komut dosyalarında boşluklu dosya adları nasıl kullanılır
Sürpriz değil Kodlar Komut satırıyla birlikte dosya adlarındaki boşluklarla aynı sorunlara sahip olun. Bir dosya adını değişken olarak geçiyorsanız, değişken adından alıntı yaptığınızdan emin olun.
Bu küçük komut dosyası, “*.txt” dosya modeliyle eşleşen dosyalar için geçerli dizini kontrol eder ve bunları adlı bir değişkende saklar
file_list
.
A
için
döngü
her birinde basit bir eylem gerçekleştirmek için kullanılır.
Bu metni bir düzenleyiciye kopyalayın ve “files.sh” adlı bir dosyaya kaydedin. Sonra kullan
.
chmod
emretmek
yürütülebilir hale getirmek için.
Bu dizinde bazı dosyalar var. Birinin basit bir dosya adı var ve diğer ikisi alt çizgiler kullanıyor "
_
"Veya çizgiler"
-
”Mekanlar yerine. Senaryoyu çalıştırdığımızda gördüğümüz şey bu.
Bu güzel çalışıyor gibi görünüyor. Ancak adlarında boşluk içeren dosyalar için dizindeki dosyaları değiştirelim.
Her dosya adındaki her kelime kendi başına bir dosya adı gibi işlenir ve böylece komut dosyası başarısız olur. Ancak, komut dosyası tutma boşluklarını dosya adlarında yapmak için yapmamız gereken tek şey,
$ Dosya
içinde değişken
için
döngü.
Dolar işaretinin
$ $
”Alıntıların içinde. Bu değişikliği yaptık ve “Files.sh” komut dosyası dosyasına kaydettik. Bu kez, dosya adları doğru şekilde ele alınır.
İLGİLİ: Bir Linux Bash betiğinde bir dosya satır satır nasıl işlenir
Aralıklı, ama lapa değil
Kendi dosya adlarınızdaki boşluklardan kaçınmak sizi sadece şimdiye kadar alacaktır. Uzay içeren isimlerle diğer kaynaklardan dosyalarla karşılaşmanız kaçınılmazdır. Neyse ki, bu dosyaları komut satırında veya komut dosyalarında kullanmanız gerekiyorsa, bunu yapmanın kolay yolları vardır.