tree
dan ls
dapat membedakan jenis file dengan mewarnai nama file secara berbeda.
tree
dan ls
sering menampilkan daftar panjang file (termasuk direktori), jadi saya mengirim output stdout ke less
.
Tetapi less
tidak mempertahankan warna. Bagaimana kita membuatnya menunjukkan warna, atau beberapa cara alternatif?
Baru saja melihat daftar tertaut, tetapi pipa ke less -R
atau less -r
tidak berfungsi. OS saya adalah Ubuntu 12.04. less
adalah Versi 444: 09 Jun 2011.
ls
(bukantree
) yang beberapa implementasinya perlu diberitahukan untuk memaksakan keluaran warna ketika keluaran tidak pergi ke terminal (selainless -R
dibutuhkan)tree -C | less -R
? The-C
pilihan adalah setara pohon kurang ini--color=always
, saya pikir (setidaknya itu bekerja untuk saya, pada Ubuntu 12.04).tree
dengan dan tanpa-C
sendiri selalu menghasilkan warna, tetapi mengapa mereka berbeda saat digunakan denganless
?less
menghapus warna secara default kecuali Anda memberikannya-R
pilihan, yang memerintahkannya untuk membiarkannya masuk, dan 2.tree
danls
dan program lain biasanya mematikan pewarnaan ketika mereka mendeteksi output mereka pergi ke program lain (sepertiless
) daripada langsung ke terminal Anda, kecuali Anda memaksakan pewarnaan dengan-C
atau--color=always
.Jawaban:
Saya akan menganggap Anda menggunakan
ls --color=auto
, yang memberitahuls
untuk menggunakan warna dalam mode 'otomatis'. Mode 'Otomatis' memberi tahuless
untuk melihat apakah STDOUT adalah terminal, dan jika demikian, gunakan warna, jika tidak jangan gunakan warna. Ketika Anda pipals
keless
, STDOUT bukan terminal, itu terhubung ke STDINless
, yang merupakan pipa normal.Solusinya, gunakan
ls --color
atauls --color=always
.Namun sekarang ini mengarah ke masalah potensial lain. Tergantung pada Anda
less
, itu mungkin tidak menunjukkan warna, tetapi menunjukkan kode melarikan diri sebagai gantinya. Solusinya adalah menggunakanless -R
. Ini memberitahuless
untuk melewati kode melarikan diri untuk lolos warna ANSI. Anda tidak ingin menggunakan-r
karena ini akan menyebabkan masalah dengan garis panjang yang membungkus, karena kurang tidak menghitung panjang garis dengan benar.Solusi yang sangat lengkap:
Demikian pula untuk
tree
:sumber