Masaüstü dizinine “ls” yazarken neden fazladan boşluk var?


27

Sadece meraktan, lsDesktop dizinine yazdığımda fazladan boşluk için bir sebep olup olmadığını merak ediyordum . Karşılaştırmak...

~/Desktop$ ls
 file1 file2 file3

... için ...

~/Documents$ ls
file1 file2 file3

lsMasaüstüne yazarken , satırın başında (dosya adının bir parçası değil) fazladan bir boşluk elde ettiğime dikkat edin. Satırın başında bu fazladan boşluğun olduğu başka bir örnek konum bulamıyorum. Bunu başka kimse var mı? Bir sebep var mı?

Not: Ubuntu Biyonik Beaver LTS sürümü ve beraberinde gelen varsayılan terminali kullanıyorum.


Bende yok. Name ( touch " ") adında sadece bir boşluk olan bir dosya oluşturursam , önünde iki boşluk var.
pLumo

6
ls -laBunun yerine çalıştırın veya find -type f -printf "file: -%P-\n"çıktıyı sağlayın. Muhtemelen yazdırılamaz karakterli bir dosya var. Dosyaların renklendirilmesi de onu etkileyebilir, bu nedenle deneyin \lsya da dirkomut verin
Sergiy Kolodyazhnyy

İlk 2 önerinizi denediğimde, yazdırılamaz karakterli hiçbir dosya göremedim. Hala denediğimde boşluğum var ama dir kullandığımda değil ...
Bart

35
Senin sunun gerçek çıktı.
Monica

Yanıtlar:


85

Fazladan boşluk, dizininizde 'etraflarında ihtiyaç duyan dosya adlarınız olduğunda görünür (örneğin, boşluklu dosya isimleri veya diğer özel karakterler).

~/mytmp$ ls
 a           'file(abc)'         proyecto3.csv   test         Test.sh
 b           'file(ab,c?).mp4'   rootfile        Test1.txt    Test.zip
 F26         'file(abc?).mp4'    scr             Test2.test   vowels
 Feb          guess              script          Test2.txt
'Feb 26 xx'   hw                 something       test.rar

'Garip' dosyaları çıkardıktan sonra alıyorum:

~/mytmp$ ls
a    guess  proyecto3.csv  script     test        Test2.txt   Test.sh
b    hw     rootfile       something  Test1.txt   test.rar    Test.zip
F26  loop   scr            speak      Test2.test  testscript  vowels

Açıklama için teşekkür ederim - bu bana doğru geliyor. Beni fırlatan şey, satırın başındaki fazladan boşluğun mutlaka özel karakterleri olan dosyanın önünde olması gerekmediğidir. Ancak bunun terminalde sunumu daha net hale getirmek için yapıldığını tahmin ediyorum. Tekrar teşekkürler
Bart

53

Ekranınızda tam olarak göründüğü gibi file1 file2 file3olmadığından eminim . Kolayca alakalı olabilecek değerli bilgileri (gerçek dosya adları) çıkardınız.

Benim düşünceme göre boşluk veya başka bir özel karakter içeren bir dosya adınız var.

Coreutils'in daha yeni bir sürümü ls, genellikle tek tırnak içine alınmış dosya isimleridir. Ayrıca, bu alıntılamayı gerektiren en az bir dosya varsa, diğer tüm dosya adlarının önüne bir boşluk ekler, böylece birbirlerinin altında kalırlarsa "güzelce" hizaya geçerler, yani, tek tırnak işareti (kesme işareti) hizalama için yoksayıldı.

Bkz --quoting-styleve -Niçinde elle sayfasında lsbiraz daha ayrıntılı bilgi için, ve onun içinde "dosya adlarını biçimlendirme" bölümünde bilgi Daha da ayrıntılı bilgi için sayfa. Örneğin, takma ad lsvermeyi düşünebilirsiniz ls -N.

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.