Czy można uzyskać kolorowe wydruki z polecenia find ? Oznacza to, że na ścieżce każdego znalezionego elementu katalogi są niebieskie, skrypty wykonywalne są zielone, i tak dalej? Używam wersji 4.4.2 findutils GNU .
Edycja - aby wyjaśnić, każdy wynik zostanie wyróżniony w następujący sposób:
./path/to/file.sh
^ ^ ^
| | L green
blue
(jeśli na przykład wykonanie find . -type f
).
bfs
funkcją znajdowania,Odpowiedzi:
AKTUALIZACJA: Dodałem nowy (inny) skrypt ...
Ignacio Vazquez-Abrams
miał rację: pytanie naprawdęexecutable scripts are green, et cetera
nasuwa pytanie ... ok ... znajdziesz taki (prototypowy) skrypt na końcu tej odpowiedzi.Ta pierwsza (oryginalna) sekcja dotyczy
grc
igrcat
.To powinno działać;
grc
... (jak zauważył enzotib . Nazwa pakietu togrc
... Podrzędnym narzędziem użytym w tym przykładzie jestgrcat
Zostanie wydrukowany następujący przykład
./
w kolorze magentabin/cpp/
w cyjaniebigint
w odważnej bieliNie w pełni ustaliłem, jak obsługuje plik konfiguracyjny, ale wygląda na to, że zrobi to, co chcesz (kiedy go oswoisz) .. np. dla pliku bez podkatalogu, a sekwencja kolorów wydaje się nie być w tej samej sekwencji, co wyrażenia.
Zakładam, że jest to możliwe (ale w tej chwili jestem trochę zajęty) ...
Oto nowy skrypt inspirowany Ignacio :)
Działa to, jeśli jako pierwszy argument użyjesz pojedynczej ścieżki
find
.W tym skrypcie występują problemy NIEZBADANE . To tylko koncepcja.
Jednym z zagadnień jest: dowiązania symboliczne ... mętne wody ...
W tej chwili drukuje,
ERROR
gdy napotka nieznany typ (np. Dowiązanie symboliczne), a następnie kontynuuje przetwarzanie.Dzięki
enzotib
zatput
przykłady.źródło
grcat
narzędzie zgrc
pakietu :) Na początku miałem trudności ze zrozumieniem, co mówisz.Przydałbyś
-exec
się do większości tego (moje rozwiązanie nie zmienia koloru części katalogu inaczej). Jeśli masz-print
w swoimfind
poleceniu, zastąp go-exec ls --color -d
; jeśli używasz drukowania niejawnego, dodaj to. Zakłada się, żels
obsługuje tę--color
opcję.źródło
Czyni to tylko dwukolorowe wyróżnienie ścieżki i nazwy pliku, a nie typ dla poszczególnych plików
ls
:Skonfiguruj kolory
grep
wyjściowe we właściwy sposób dla dopasowanej i niedopasowanej części i dopasuj nazwę pliku:Możesz nie chcieć zastąpić zmiennej
GREP_COLORS
, więc ustaw ją tylko dlagrep
:(Definicje z przestarzałej zmiennej
GREP_COLOR
mają mniejszy priorytet niż te wGREP_COLORS
)Dla kodów kolorów, zobaczyć
colortest-16
z pakietucolortest
,a punkt „Zestaw graficzne odwzorowanie” w ANSI sekwencji komend terminala .
źródło
Podobał mi się pomysł -exec. Użyłem go do stworzenia tej funkcji:
źródło