質問: "ls -g1 | sed 's/^/ /'" しかし、sedを追加すると、何をしても出力色が失われます。ls出力にインデントを追加し、元の出力色を保持する方法はありますか?
回答: nix&linux stack exchange に関するこの回答で説明されているように、次のように、そのコマンドの前にclicolor_force=1を付ける必要があります。clicolor_force=1 ls -g1 | sed 's/^/ /' したがって、エイリアスは次のようになります。something = "clicolor_force=1 ls -g1 | sed 's/^/ /'" lsコマンドの問題は-gがclicolorと同等であるということです。これは このls環境変数のドキュメントページは次のとおりです =;大胆な強調は私のものです: ansiカラーシーケンスを使用してファイルタイプを区別します。以下のlscolorsを参照してください。 -fオプションに記載されているファイルの種類に加えて、いくつかの追加の属性(setuidビットセットなど)も表示されます。色付けは、適切なtermcap(5)機能を備えた端末タイプに依存します。 デフォルトの「cons25」コンソールには適切な機能がありますが、たとえばxterm(1)で色を表示するには、term変数を「xterm-color」に設定する必要があります。他の端末タイプでも同様の調整が必要になる場合があります。 clicolor_force変数が定義されていない限り、出力が端末に送信されない場合、カラー化はサイレントに無効になります。 コマンドがls出力をsedにパイプしていることに注意してください。これは端末への直接出力ではないため、そのオプションはサイレントに無効になります。したがって、次のように同じ ls環境変数ページ で説明されているclicolor_forceを使用する必要があります。 出力が端末に向けられていない場合、カラーシーケンスは通常無効になります。これは、このフラグを設定することでオーバーライドできます。 term変数は、カラー対応端末を参照する必要がありますが、そうでない場合、使用するカラーシーケンスを決定することはできません。