tree
また、ls
ファイル名を異なる色で塗りつぶすことで、ファイル形式を区別することができます。
tree
そしてls
しばしば長いファイルのリスト(ディレクトリを含む)を出力するので、stdout出力をless
。
しかし、less
色は維持されません。どのように色を表示できますか?それとも別の方法がありますか?
ちょうどリンクされたリストを見たが、パイピングless -R
またはless -r
動作しません。私のオペレーティングシステムはUbuntu 12.04です。less
バージョン444:2011年6月9日。
答え1
私はあなたが「自動」モードで色を使うように指示するls --color=auto
を使用していると仮定します。ls
「自動」モードはls
STDOUTが端末であることを確認し、そうであれば色を使用し、そうでなければ色を使用しないことを示します。ls
にパイプを接続すると、less
STDOUTは端子ではなくless
通常のパイプであるSTDINに接続されます。
回避策ls --color
は、またはls --color=always
。
今、これは別の潜在的な問題につながります。場合によっては、less
色が表示されず、エスケープコードが表示されることがあります。解決策はを使用することですless -R
。これはless
、ANSIカラーエスケープのエスケープコードを渡すように指示します。-r
lessは行の長さを正しく計算できないため、長い改行に問題が発生する可能性があるため、使用したくありません。
これらの完璧なソリューションは次のとおりです。
ls --color | less -R
同じtree
:
tree -C | less -R