ls
çıktının bir terminale mi yoksa başka bir şeye mi olduğuna bağlı olarak farklı yazdırır.
Örneğin:
$ ls .
file1 file2
$ ls . | head
file1
file2
ls
Sanki bir terminalde olmadığı gibi bir hatta baskı yapmanın bir yolu var mı ? -C
Sorta'nın bunu yaptığını iddia eden bir argüman var, ama bunu birkaç satıra böler.
$ ls
file1 file10 file11 file12 file13 file14 file15 file16 file17 file18 file19 file2 file3 file4 file5 file6 file7 file8 file9
$ ls -C . | head
file1 file11 file13 file15 file17 file19 file3 file5 file7 file9
file10 file12 file14 file16 file18 file2 file4 file6 file8
Bunu yapmak istiyorum nedeni hızlı bir şekilde değişen bir dizindeki dosyaları izlemek istiyorum. Bu basit komut satırını inşa etmiştim:
while [[ true ]] ; do ls ; done | uniq
Uniq, terminalimi spam etmesini ve sadece değişiklikler göstermesini engelliyor. Ancak, tüm bu uniq yararsız yapan ve gürültü miktarını artıran differnet hatları yazdırıyordu. Teoride bunun için bir şey kullanılabilirdi watch
, ancak bir dosyayı göründüğü / kaybolduğu anda görmek istedim.
Bu nihai çözüm:
while [[ true ]] ; do ls | tr '\n' ' ' ; done | uniq