Dosya (veya dizin) adlarındaki ayırıcılar için iyi stil / uygulamalar [kapalı]


16

Bunun buraya gönderilecek "doğru" bir soru olup olmadığından tam olarak emin değilim. Muhtemelen "görüş" hakkında gerçek kategorik cevaplardan (ya çalışan ya da çalışmayanlardan daha fazlasını soruyorum).

Hangi ad ayırıcılarının aynı anda en linux dostu (veya daha spesifik olarak Bash dostu ) ve insan dostu olacağını merak ediyordum .

Sayın Foo Bar ile ilgili bir şey içeren bir dizin oluşturmak istediğimi varsayalım ( Foo ilk ad, Bar soyadı)

" Foo-Bar/" İsmine sahip olmak çok uygundur. -"normal" bir karakterdir, kaçmak gerekmez, açıkça gösterir Foove Bariki ayrı şeydir ... Güzel.

Şimdi " Foo.Bar" biraz daha hileli. Birisi bunun Foo.Baraslında bir dosya olduğunu düşünebilir (ilk bakışta, özellikle renklendirme etkinleştirilmiş terminalleriniz yoksa) " Foo" dosya adı ve " Bar" uzantısıdır.

Ben de " Foo Bar" kullanabilirsiniz , ama sonra dizine erişmek istediğinizde boşluk kaçmak gerekir, ve, ben (nerede Foo Barbulunur) üst dizinin içeriğini listelemek ve bir bash dizisine söz konusu listeyi koymak, beyaz boşluk sorun yaratacaktır (çok). İyi değil.

Köşeli ayraçlar ()da birçok soruna neden olur. Ayrıca kaçmaları gerekiyor, sonra komutlarla ilgili sorunlara neden olmak scp... Hoş değil.

Yani ... soru (sonunda) şudur: Bir dosyanın adını ilk bakışta net ve anlamlı hale getirmeniz gerekiyorsa ve ayırıcılar kullanmanız gerekiyorsa, ne kullanıyorsunuz?



Sık sık tire kullanıyorum, ama ne yaptığımla ilgili. Bazıları deve kasasını FooBar gibi uygun görebilir.
klapaucius

Yanıtlar:


14

Kısa cevap: "Foo _-_ Bar"

Uzun cevap:

İşleri kolaylaştırmak için bunun gerekli olduğu alanlarda bir dizi karakter kullanmaya eğilimliyim, fikir, fark edilmesi kolay bir şey kullanmaktır, böylece bunun ayırıcı olabileceğini "_-_" veya " ___".

Bunu kullandığım pratik bir örnek, dosya adlarının sanatçı ve şarkı adı ve bazen de sıra numarasını içerdiği mp3 koleksiyonum. Ve onları ayırmak için sihirli bir dizi kullanırsanız, hem göz hem de komut dosyaları için kolaydır. Mp3 örneği böyle görünebilir.

  • 01_Blue_Man_Group _-_ Above.mp3
  • 02_Blue_Man_Group _-_ Time_to_Start.mp3
  • 03_Blue_Man_Group _-_ Sing_Along.mp3

Eğer Foo ve Bar karıştırılmaması gereken iki mantıksal şeyse ve bu daha sonra Foo _-_ Bar olabilirse, bu örnek olarak çevrilebilir.


2
Bu şekilde, zaten tire (veya genel olarak ayırıcılar) içeren adları da ayırt edebilirsiniz.
lynxlynxlynx

1
Ayrıca gerçekten ayrıştırma reg gerçekten güzel! : ^ (. +) _-_ (. +) \. mp3 $
DanDan

İnsanların bu dosyaları göreceği göz önüne alındığında, bu iyi bir cevaptır; Özünde bunu ayırıcı bir dize olarak düşünürdüm; Çok karakterli benzersiz bir ayırıcı. Vagrant, ben VAGRANTSLASHayırma olduğu dosya adlarında dize kullandığını fark ettim .
ThorSummoner

9

Özel olması gerektiğini düşünemeyeceğiniz çok fazla karakterle, aslında özel olarak, sadece özel karakterleri kullanıyorum. Bu da beni bir dosya adındaki tüm özel karakterlerden otomatik olarak kaçacağı bash tamamlamayı kullanmanın iyi alışkanlıklarına sokuyor. Ama aynı zamanda beni senaryolarda HERŞEYDEN kaçma / alıntı yapma alışkanlıklarına ve bash'daki çok parçalı 1 satırlara sokuyor.

Örneğin, sadece basit bir 1 astarda:

for file in *.txt; do something.sh "$file"; done

Bu şekilde, dosyalardan birinde bir boşluk veya başka bir karakter olsa bile do, döngünün parçası hala üzerinde hareket eder ve muhtemelen istenmeyen yan etkilere neden olan 2 veya daha fazla dosya adı parçasını kaçırmaz.

Karşılaştığım HER dosyanın boşluk / boşluk olmayan isimlerini kontrol edemediğim için ve denediğimde, muhtemelen bir yerde bazı semboller kıracak, ancak daha istenmeyen sonuçlara neden olacak, sadece tüm dosya adının / yönetici adının içinde boşluklar olmasını bekleyebilirim, ve sadece telafi etmek için tüm değişkenleri alıntı / kaçmak.

Bu yüzden dosya adlarında istediğim karakterleri (genellikle boşluklar) kullanıyorum.

ZFS veri kümesi adlarında boşlukları bile kullanıyorum, itiraf etmeliyim ki, kullandığım NAS için yazılımı yazan geliştiriciler arasında oldukça fazla kafa çizilmeye neden oldu.

Sum-up: Spaces bir değildir geçersiz öylesine bir neden yok, karakter değil onları kullanmak.


6

-Yukarıda bahsettiğiniz nedenlerden dolayı tire kullanıyorum . Alt çizgilerden kaçınırım çünkü shift tuşunu kullanmaları gerekir, bu yüzden yazmak için en az iki kez daha uzun sürün (ayrıca, çirkin olduklarını düşünüyorum)

Komut dosyası adları için bunu her şeyden daha yapmaya meyilliyim - sanırım betiğin ne için olduğunu açıkça tanımlamak benim için daha önemli. Belge dosyaları yalnızca atıl verilerdir, ancak komut dosyaları yanlış kullanıldığında potansiyel olarak tehlikelidir.


5

Alt çizgi ( _) kullanıyorum. Görsel olarak yok olurlar ve yazmaları kolaydır ve özel değildir.


4
onları daha çirkin bulmak -ve yazmak daha zor (biri shift tuşunu kullanmak zorunda)
tshepang
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.