Apakah mungkin untuk mendapatkan output berwarna dari perintah find ? Artinya, di jalur setiap item yang ditemukan, direktori berwarna biru, skrip yang dapat dieksekusi berwarna hijau, dan lain-lain? Saya menggunakan findutils GNU versi 4.4.2 .
Sunting - Untuk memperjelas, setiap hasil akan disorot seperti ini:
./path/to/file.sh
^ ^ ^
| | L green
blue
(jika, misalnya, mengeksekusi find . -type f
).
bfs
yang sebagian besar dapat ditemukan yang disebut memiliki fungsi ini: github.com/tavianator/bfsJawaban:
UPDATE: Saya telah menambahkan skrip (berbeda) baru ...
Ignacio Vazquez-Abrams
ada benarnya: Pertanyaannya benar-benar memintaexecutable scripts are green, et cetera
.. oke ... Anda akan menemukan skrip (prototipe) pada akhir jawaban ini.Bagian pertama (asli) ini adalah tentang
grc
dangrcat
.Ini seharusnya bekerja;
grc
... (seperti yang ditunjukkan enzotib .. Nama paketnya adalahgrc
... Sub-utilitas yang digunakan dalam contoh, adalahgrcat
Contoh berikut dicetak
./
dalam magentabin/cpp/
di cyanbigint
dalam warna putih tebalSaya belum sepenuhnya memilah bagaimana menangani file konfigurasi, tetapi ini sepertinya akan melakukan apa yang Anda inginkan (setelah Anda menjinakkannya) .. mis. untuk file tanpa sub-dir, dan urutan warna tampaknya tidak berada dalam urutan yang sama dengan ekspresi.
Saya menganggap itu mungkin (tapi saya agak sibuk saat ini) ...
Ini skrip baru yang terinspirasi dari Ignacio :)
Ini berfungsi jika Anda menggunakan jalur tunggal sebagai argumen pertama
find
.Ada masalah yang TIDAK TERUJI dalam skrip ini. Itu hanya konsep.
Salah satu masalah adalah: Tautan Simbolik ... perairan keruh ...
Seperti apa adanya, ia mencetak sebuah
ERROR
ketika bertemu dengan jenis yang tidak dikenal (mis. Tautan simbolis), dan kemudian melanjutkan pemrosesan melewati itu.Terima kasih
enzotib
atastput
contohnya.sumber
grcat
utilitas darigrc
paket :) Pada awalnya saya memiliki beberapa kesulitan untuk memahami apa yang Anda katakan.Anda dapat menggunakannya
-exec
untuk melakukan sebagian besar dari itu (solusi saya tidak mewarnai bagian direktori secara berbeda). Jika Anda memiliki-print
di Andafind
perintah, menggantinya dengan-exec ls --color -d
; jika Anda menggunakan pencetakan implisit, tambahkan itu. Ini mengasumsikan Andals
mendukung--color
opsi.sumber
Ini hanya menyoroti dua warna untuk path dan nama file, bukan hal per-filetype
ls
:Konfigurasikan warna
grep
output dengan cara yang benar untuk bagian yang cocok dan tidak cocok, dan cocok dengan nama file:Anda mungkin tidak ingin menimpa variabel
GREP_COLORS
, jadi atur hanya untukgrep
:(Definisi dari variabel yang ditinggalkan
GREP_COLOR
memiliki prioritas kurang dari yang ada diGREP_COLORS
)Untuk kode warna, lihat
colortest-16
dari paketcolortest
,dan bagian "Set Rendition Graphics" dalam urutan perintah terminal ANSI .
sumber
Saya menyukai ide -exec. Saya menggunakannya untuk membuat fungsi ini:
sumber