2016-11-13 5 views
1

私はここに、デフォルトのLinuxミントの.bashrcを使用full bashrcで、出力は次のようである:どのように `のLSでdirの背景を削除することが-color`出力

enter image description here

一部dirが緑色の背景、どのように削除するためにしていますそれ?

+0

エイリアスls = 'ls --color = auto'' – Maroun

+0

@MarounMaroun色を保ちたいと思いますが、 "緑色の背景"を変更します。例えば、 "赤い背景"に変更します。 – asullaherc

答えて

1

説明はもちろんdircolors

screenshot with dircolors -p

その出力を着色しない、dircolors -pの出力、例えば、で与えられます。背景を取り除くために

#!/usr/bin/perl -w 

use strict; 

our $comment = "\e[31m"; 
our $reset = "\e[K\e[m"; 

our @data; 

open my $fh, "dircolors -p|" or die "cannot read from dircolors"; 
@data = <$fh>; 
close $fh; 

printf "\e[H\e[2J"; 

for my $n (0 .. $#data) { 
    chomp $data[$n]; 
    if ($data[$n] =~ /^\s*#/) { 
     printf "%s%s%s\n", $comment, $data[$n], $reset; 
    } 
    elsif ($data[$n] =~ /^\s*TERM\s/) { 
     printf "%s\n", $data[$n]; 
    } 
    elsif ($data[$n] =~ /^\s*[^\s]+\s+\d+(;\d+)?\s*(#.*)?$/) { 
     my $code = $data[$n]; 
     $code =~ s/^\s*[^\s]+\s+//; 
     $code =~ s/\s.*//; 
     my $data = $data[$n]; 
     $data =~ s/(#.*)$/$comment$1$reset/; 
     $data =~ s/^(\s*)([^\s]+)(\s+)/$1\e[${code}m$2\e[m$3/; 
     printf "%s\n", $data; 
    } 
    else { 
     printf "%s\n", $data[$n]; 
    } 
} 

1; 

、ディレクトリのパーミッションを変更したり、LS_COLORS環境変数を設定する別のデータベースを使用するか:私はこのスクリプトを使用していました。 dircolors documentationは行く場所です。

関連する問題