パイプスルー後のbashの色は少ないですか?


106

dircolorsが定義されている場合、人生は...色でいっぱいです。

いつパイプlsを通してless周りの私が色を失うスクロールします。

助言がありますか?

回答:


105

おそらくlsがにエイリアスされてls --color=autoおりls、出力がttyの場合にのみ色を使用するように指示されます。実行するとls --color(これは道徳的にに相当しますls --color=always)、強制的に色をオンにします。

エイリアスを変更して変更することもできますが、私はそれを良いアイデアとは言いません。で別のエイリアスを作成する方が良いでしょう--color。

lessも必要-Rです。


5
なぜls ls --colorまたはにエイリアスするのはいい考えだと思いませんls --color=alwaysか?
— -j08lue

10
@ j08lue色を処理しないコマンドをパイプ処理すると、コマンドを台無しにする可能性のあるジャンク文字が表示されます。たとえば、私は次のことls --color=always | lessをしました:(ESC[01;32mexecute_once.shESC[0mこれは古くて気にしないかもしれませんが、将来の訪問者にとっては役に立つかもしれません)
— ライアンアモス

55

次のように-Rオプションを使用して、より少なく試してください。

command | less -R

これは、次のようなワンライナーで機能します。

ls -la | grep --color=always bash | less -r

そしてこのように:

ls --color | less -R

ただし、-colorパラメーターを使用して、プライマリ出力(この場合はlsの出力)を少し調整する必要があります。


おかげで、これはack-grepでも機能します。ack-grep my_string --color | less -R
— igniteflow

1
-色が認識されません:ls:不正なオプション--osxでbashを実行しています。
— スコットビッグス14年

1
@Scott Biggs:OSXには--colorはありません。ls -Gを試す

@呂チー、でもと-G、色が欠けている
— イウリアンOnofrei

1
-Rオプションは、の略です--RAW-CONTROL-CHARS。
— ロリーO'Kane
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.