ls 出力が端末または他の何かのどちらであるかによって、印刷が異なります。
例えば:
$ ls .
file1  file2
$ ls . | head
file1
file2
ls端末ではないときに1行で印刷する方法がありますか?-Csortaがそれを行う引数がありますが、それはいくつかの行に分割します。
$ 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
これを行う理由は、ディレクトリ内のファイルをすばやく監視したいからです。この単純なコマンドラインを作成しました。
while [[ true ]] ; do ls ; done | uniq
uniqは、端末にスパムを送信し、変更のみを表示するのを防ぎます。しかし、それをすべて異なるネットラインに印刷していたため、uniqが役に立たなくなり、ノイズの量が増えました。理論的にwatchはこれを使用できますが、ファイルが表示されたり消えたりしたらすぐに見たいと思いました。
これが最終的な解決策です。
while [[ true ]] ; do ls | tr '\n' ' ' ; done | uniq