ls
çıkışın bir terminale gidip gitmediğini test eder. Çıkış bir terminale gitmiyorsa -1
, varsayılan değer budur. (Bu biri tarafından geçersiz kılınabilir -C
, -m
veya -x
seçenekleri.)
Böylece, ls
bir boru hattında kullanıldığında ve başka bir seçenekle geçersiz kılmadığınızda ls
, kullanacaktır -1
. Bu davranış POSIX için gerekli olduğundan buna güvenebilirsiniz
POSIX Özellikleri
-1
Çıkış bir terminale gitmediğinde POSIX varsayılan olarak gerektirir :
POSIX spesifikasyonu :
Varsayılan biçim, standart çıktıya satır başına bir giriş listelemek olmalıdır; istisnalar terminallerde veya -C, -m veya -x seçeneklerinden biri belirtildiğinde yapılır. Çıktı bir terminale ise, biçim uygulama tanımlıdır.
Varsayılan tek sütun biçimini geçersiz kılan üç seçenek şunlardır:
-C
Harmanlama sırasına göre, girişleri sütunlara göre sıralanmış şekilde çok metinli sütun çıktısı yazın. Metin sütunlarının ve sütun ayırıcı karakterlerin sayısı belirtilmedi, ancak çıktı aygıtının yapısına göre uyarlanmalıdır. Bu seçenek uzun format çıktısını devre dışı bırakır.
-m
Akış çıktı biçimi; yol adları, <comma> karakteri ve ardından <space> karakteri ile ayrılmış olarak listelenir. Liste sonlandırıcı olarak ve sonraki liste girişi için bir satırda yer olmadığında ayırıcı diziden sonra <newline> karakteri kullanın. Bu seçenek uzun format çıktısını devre dışı bırakır.
-x
Çoklu metin sütunu çıktısının sütunlar yerine aşağı sıralanmış girişlerle üretilmesi dışında -C ile aynıdır. Bu seçenek uzun format çıktısını devre dışı bırakır.
GNU Belgeleri
Gönderen GNU manuel ls :
'-1'
'--format = tek sütunlu'
Satır başına bir dosya listele. Standart çıkış terminal olmadığında bu ls için varsayılan değerdir . Bir dosya adı içindeki yeni satır karakterlerinin doğrudan çıktısını bastırmak için -b ve -q seçeneklerine de bakın. [Vurgu eklendi]
Örnekler
Üç dosya oluşturalım:
$ touch file{1..3}
Çıktı bir terminale gittiğinde, GNU ls
çok sütunlu bir format kullanmayı seçer:
$ ls
file1 file2 file3
Çıktı bir boru hattına gittiğinde, POSIX spesifikasyonu varsayılan olarak tek sütunun olmasını gerektirir:
$ ls | cat
file1
file2
file3
Varsayılan tek sütun davranışını geçersiz kılan üç istisna -m
, virgülle ayrılmış, -C
sıralanan sütunlar ve -x
sıralanan sütunlar içindir:
$ ls -m | cat
file1, file2, file3
$ ls -C | cat
file1 file2 file3
$ ls -x | cat
file1 file2 file3
n=0; for i in .* *; do ((n++)) ; done ; echo $n
(bu sayıları saymak istemiyorsanız. * 'ı bırakın). veya:ls -1d ./.* ./* | grep '^\./' | wc -l
(dosya adları '/'