рдЖрдЬ рдЖрдореНрд╣рд╛рд▓рд╛ рд╢реЗрд░рд▓реЙрдХ рдкреНрд░рдгрд╛рд▓реАрдЪреНрдпрд╛ рдХрд╛рд╣реА рдирд╡реАрдирддрдо рдЕрджреНрдпрддрдирд╛рдВрдмрджреНрджрд▓ рдмреЛрд▓рд╛рдпрдЪреЗ рдЖрд╣реЗ [рд╣рд╛ рд╕реНрдЯреЕрдирдлреЛрд░реНрдб рд╡рд┐рджреНрдпрд╛рдкреАрдард╛рддреАрд▓ рдЙрдЪреНрдЪ-рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдЖрд╣реЗ - рдЕрдВрджрд╛рдЬреЗ. trans.], рдЬреЗ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдиреЛрдВрджреА рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдбрд┐рд░реЗрдХреНрдЯрд░реАрдордзреНрдпреЗ рдлрд╛рдпрд▓реА рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд▓рдХреНрд╖рдгреАрдп рдЧрддреА рд╡рд╛рдврд╡рддреЗ.
рдирд┐рдпрдорд┐рдд рд▓реЗрдЦрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, рдЖрдордЪреНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╛рдареА рд╢реЗрд░рд▓реЙрдХрд╡рд░ рддреЗ рдЙрддреНрддрдо рдкреНрд░рдХрд╛рд░реЗ рдЪрд╛рд▓реВ рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рдирд┐рдпрдорд┐рддрдкрдгреЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЛ рдпрд╛рд╡рд░реАрд▓ рд╣рд╛ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЕрд╣рд╡рд╛рд▓ рдЖрд╣реЗ. рдЖрдореНрд╣реА рднрд╡рд┐рд╖реНрдпрд╛рдд рдЕрд╕реЗ рдЖрдгрдЦреА рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реВ рдЕрд╢реА рдЖрд╢рд╛ рдЖрд╣реЗ.
рдмрд░реНтАНрдпрд╛рдЪ рдлрд╛рдпрд▓реАрдВрдЪреА рд╕реВрдЪреА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕ рд╡реЗрд│ рд▓рд╛рдЧрддреЛ
рд╣реЗ рд╕рд░реНрд╡ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рддрд╛рдВрддреНрд░рд┐рдХ рд╕рдорд░реНрдерди рдкреНрд░рд╢реНрдирд╛рд╕рд╣ рд╕реБрд░реВ рдЭрд╛рд▓реЗ. рддреНрдпрд╛рдиреЗ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреА рд╕рдорд╕реНрдпрд╛ рдХрд│рд╡рд▓реА ls
15 рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдиреЛрдВрджреА рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдХрд╛рд╣реА рдорд┐рдирд┐рдЯреЗ рд▓рд╛рдЧрддрд╛рдд $SCRATCH
[рддрд╛рддреНрдкреБрд░рддреНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕рд╕рд╛рдареА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ - рдЕрдВрджрд╛рдЬреЗ. рд▓реЗрди].
рдПрдХрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрддреАрд▓ рд╣рдЬрд╛рд░реЛ рдлрд╛рдпрд▓реА рд╕рд╣рд╕рд╛ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдорд╡рд░ рдУрдЭреЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛рдд рдЖрдгрд┐ рдирд┐рд╢реНрдЪрд┐рддрдкрдгреЗ рд╢рд┐рдлрд╛рд░рд╕ рдХреЗрд▓реЗрд▓реА рдирд╛рд╣реА. рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рд╣реЗ рдорд╛рд╣рд┐рдд рд╣реЛрддреЗ рдЖрдгрд┐ рддреЗ рдЪрд╛рдВрдЧрд▓реЗ рдирд╡реНрд╣рддреЗ рд╣реЗ рдорд╛рдиреНрдп рдХреЗрд▓реЗ, рдкрд░рдВрддреБ рдирдореВрдж рдХреЗрд▓реЗ рдХреА рд╕реВрдЪреА рддреНрдпрд╛рдЪреНрдпрд╛ рд▓реЕрдкрдЯреЙрдкрд╡рд░ рд╢реЗрд░рд▓реЙрдХрдкреЗрдХреНрд╖рд╛ 1000 рдкрдЯ рд╡реЗрдЧрд╡рд╛рди рдЖрд╣реЗ. рдЕрд░реНрдерд╛рдд, рдпрд╛рдореБрд│реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рддреНрд░рд╛рд╕ рдЭрд╛рд▓рд╛. рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рдЦреЛрд▓рд╡рд░ рдкрд╛рд╣рд┐рд▓реЗ.
рдХрд╛рд░рдг ls рдЫрд╛рди рджрд┐рд╕рддреЗ
рддреЗ рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдХрд╛рдп рдХрд░рддреЗ рддреЗ рдЖрдореНрд╣реА рдкрд╛рд╣рд┐рд▓реЗ ls
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛рдирд╛ рдЖрдгрд┐ рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕ рдЗрддрдХрд╛ рд╡реЗрд│ рдХрд╛ рд▓рд╛рдЧрддреЛ. рдмрд╣реБрддреЗрдХ рдЖрдзреБрдирд┐рдХ рд╡рд┐рддрд░рдгрд╛рдВрд╡рд░ ls
рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рддреЗ рдореНрд╣рдгреВрди рдЪрд╛рд▓рддреЗ ls --color=auto
, рдХрд╛рд░рдг рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ рд░рдВрдЧ рдЖрд╡рдбрддрд╛рдд.
рдкрд░рдВрддреБ рд╕реБрдВрджрд░ рд░рдВрдЧ рдХрд┐рдВрдорддреАрд▓рд╛ рдпреЗрддрд╛рдд: рдкреНрд░рддреНрдпреЗрдХ рдлрд╛рдЗрд▓рд╕рд╛рдареА ls
рдпреЛрдЧреНрдп рд░рдВрдЧ рдирд┐рд╡рдбрдгреНрдпрд╛рд╕рд╛рдареА рдлрд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░, рддреНрдпрд╛рдЪреНрдпрд╛ рдкрд░рд╡рд╛рдирдЧреНрдпрд╛, рдзреНрд╡рдЬ, рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдЖрдгрд┐ рдпрд╛рд╕рд╛рд░рдЦреНрдпрд╛ рдЧреЛрд╖реНрдЯреАрдВрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдорд┐рд│рд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рд╕рдорд╕реНрдпреЗрдЪрд╛ рдПрдХ рд╕реЛрдкрд╛ рдЙрдкрд╛рдп рдореНрд╣рдгрдЬреЗ ls рдордзреНрдпреЗ рд░рдВрдЧ рдкреВрд░реНрдгрдкрдгреЗ рдЕрдХреНрд╖рдо рдХрд░рдгреЗ, рдкрд░рдВрддреБ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕рдВрддрд╛рдкрд╛рдЪреА рдХрд▓реНрдкрдирд╛ рдХрд░рд╛. рдХреЛрдгрддреНрдпрд╛рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рдЖрдкрдг рд░рдВрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛рдвреВрди рдШреЗрдК рдирдпреЗ, рдЖрдореНрд╣реА рд░рд╛рдХреНрд╖рд╕ рдирд╛рд╣реА.
рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рдЦреЛрд▓рд╡рд░ рдкрд╛рд╣рд┐рд▓реЗ. ls
рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рджреНрд╡рд╛рд░реЗ рд░рдВрдЧрд╛рдВрдЪреНрдпрд╛ рдиреЛрдВрджреА LS_COLORS
, рдЬреЗ рд╕реЗрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗ dircolors(1)
рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рд╡рд░ рдЖрдзрд╛рд░рд┐рдд dir_colors(5)
... рд╣реЛрдп,
рдЪрд▓рд╛ рдЬрд╡рд│реВрди рдмрдШреВрдпрд╛
рдХреЛрдгрддреНрдпрд╛ рд░рдВрдЧрд╕рдВрдЧрддреАрдореБрд│реЗ рдордВрджреА рдпреЗрддреЗ рд╣реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╡рд╛рддрд╛рд╡рд░рдг рддрдпрд╛рд░ рдХреЗрд▓реЗ:
$ mkdir $SCRATCH/dont
$ touch $SCRATCH/dont/{1..10000} # don't try this at home!
$ time ls --color=always $SCRATCH/dont | wc -l
10000
real 0m12.758s
user 0m0.104s
sys 0m0.699s
12,7 рдлрд╛рдпрд▓реАрдВрд╕рд╛рдареА 10 рд╕реЗрдХрдВрдж, рдлрд╛рд░ рдЪрд╛рдВрдЧрд▓реЗ рдирд╛рд╣реА.
рддрд╕реЗ, рдЖрдореНрд╣рд╛рд▓рд╛ рдПрдХ рдзреНрд╡рдЬ рд╣рд╡рд╛ рдЖрд╣реЗ
--color=always
: рдЬрд░реА рддреЛ рд╡рд│рддреЛls --color=auto
рдкрдгls
рдЬреЗрд╡реНрд╣рд╛ рддреЗ рдЯрд░реНрдорд┐рдирд▓рд╢реА рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ рдирд╕рддреЗ рддреЗрд╡реНрд╣рд╛ рд╢реЛрдзрддреЗ (рдЙрджрд╛. рдкрд╛рдИрдкрджреНрд╡рд╛рд░реЗ рдХрд┐рдВрд╡рд╛ рдЖрдЙрдЯрдкреБрдЯ рд░реАрдбрд╛рдпрд░реЗрдХреНрд╢рдирд╕рд╣) рдЖрдгрд┐ рд╕реЗрдЯ рдХреЗрд▓реНрдпрд╛рд╕ рд░рдВрдЧ рдЕрдХреНрд╖рдо рдХрд░рддреЗauto
. рд╣реБрд╢рд╛рд░ рдорд╛рдгреВрд╕.
рдордЧ рдЗрддрдХрд╛ рд╡реЗрд│ рдХрд╛рдп рдШреЗрдд рдЖрд╣реЗ? рдЖрдореНрд╣реА рд╕рд╣ рдкрд╛рд╣рд┐рд▓реЗ strace
:
$ strace -c ls --color=always $SCRATCH/dont | wc -l
10000
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
44.21 0.186617 19 10000 lstat
42.60 0.179807 18 10000 10000 getxattr
12.19 0.051438 5 10000 capget
0.71 0.003002 38 80 getdents
0.07 0.000305 10 30 mmap
0.05 0.000217 12 18 mprotect
0.03 0.000135 14 10 read
0.03 0.000123 11 11 open
0.02 0.000082 6 14 close
[...]
рд╡реНрд╡рд╛: 10 рдХреЙрд▓ lstat()
, 10 рдХреЙрд▓ getxattr()
(рдЬреЗ рд╕рд░реНрд╡ рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрддрд╛рдд рдХрд╛рд░рдг рдЖрдкрд▓реНрдпрд╛ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд ls рд╢реЛрдзрдд рдЕрд╕рд▓реЗрд▓реЗ рдЧреБрдгрдзрд░реНрдо рдирд╛рд╣реАрдд), 10 рдХреЙрд▓ capget()
.
рд╣реЗ рдирд┐рд╢реНрдЪрд┐рддрдкрдгреЗ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.
рдХреНрд╖рдорддрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛? рдирд╛рд╣реА
рд╕рд▓реНрд▓реНрдпрд╛рдиреБрд╕рд╛рд░
$ eval $(dircolors -b | sed s/ca=[^:]*:/ca=:/)
$ time strace -c ls --color=always $SCRATCH/dont | wc -l
10000
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
98.95 0.423443 42 10000 lstat
0.78 0.003353 42 80 getdents
0.04 0.000188 10 18 mprotect
0.04 0.000181 6 30 mmap
0.02 0.000085 9 10 read
0.02 0.000084 28 3 mremap
0.02 0.000077 7 11 open
0.02 0.000066 5 14 close
[...]
------ ----------- ----------- --------- --------- ----------------
100.00 0.427920 10221 6 total
real 0m8.160s
user 0m0.115s
sys 0m0.961s
рд╡реНрд╡рд╛, 8 рд╕реЗрдХрдВрджрд╛рдВрдкрд░реНрдпрдВрдд рдкреНрд░рд╡реЗрдЧ! рдЖрдореНрд╣реА рддреНрдпрд╛ рд╕рд░реНрд╡ рдорд╣рд╛рдЧрдбреНрдпрд╛ рдХреЙрд▓реНрд╕рдкрд╛рд╕реВрди рдореБрдХреНрдд рдЭрд╛рд▓реЛ getxattr()
, рдЖрдгрд┐ рдЖрд╡реНрд╣рд╛рдиреЗ capget()
рдЦреВрдк рдЧрд╛рдпрдм рдЭрд╛рд▓реЗ.
рдкрдг рддрд░реАрд╣реА рд╣реЗ рддреНрд░рд╛рд╕рджрд╛рдпрдХ рдХреЙрд▓реНрд╕ рдЖрд╣реЗрдд lstat()
, рддрд░реАрд╣реАтАж
рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд┐рддреА рдлреБрд▓рд╛рдВрдЪреА рдЧрд░рдЬ рдЖрд╣реЗ?
рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рдЬрд╡рд│реВрди рдкрд╛рд╣рд┐рд▓реЗ LS_COLORS
.
рдкреНрд░рдердо рдЖрдореНрд╣реА рдлрдХреНрдд рд╣реЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдЕрдХреНрд╖рдо рдХреЗрд▓реЗ:
$ echo $LS_COLORS rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36: $ unset LS_COLORS $ echo $LS_COLORS $ time ls --color=always $SCRATCH/dont | wc -l 10000 real 0m13.037s user 0m0.077s sys 0m1.092s
рдХрд╛рдп!?! рдЕрдЬреВрди резрей рд╕реЗрдХрдВрдж?
рд╣реЗ рдмрд╛рд╣реЗрд░ рд╡рд│рддреЗ рдХреА рдЬреЗрд╡реНрд╣рд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдмрджрд▓рддреЗ LS_COLORS
рддреНрдпрд╛рддреАрд▓ рдлрдХреНрдд рдПрдХ рдШрдЯрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗрд▓рд╛ рдирд╛рд╣реА рдХрд┐рдВрд╡рд╛ рдЧрд╣рд╛рд│ рдЖрд╣реЗ <type>=color:
, рддреЗ рдбрд┐рдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдЕрдВрдЧрднреВрдд рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд╛рдкрд░рддреЗ рдЖрдгрд┐ рддрд░реАрд╣реА рд░рдВрдЧ рд╡рд╛рдкрд░рддреЗ. рдореНрд╣рдгреВрди рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░рд╛рд╕рд╛рдареА рд░рдВрдЧреАрдХрд░рдг рдЕрдХреНрд╖рдо рдХрд░рд╛рдпрдЪреЗ рдЕрд╕реЗрд▓, рддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗ рдУрд╡реНрд╣рд░рд░рд╛рдЗрдб рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ <type>=:
рдХрд┐рдВрд╡рд╛ <type> 00
рдлрд╛рдЗрд▓ рдордзреНрдпреЗ DIR_COLORS
.
рдмрд░реНтАНрдпрд╛рдЪ рдЪрд╛рдЪрдгреА рдЖрдгрд┐ рддреНрд░реБрдЯреАрдВрдирдВрддрд░, рдЖрдореНрд╣реА рдЖрдордЪрд╛ рд╢реЛрдз рдпреЗрдереЗ рдХрдореА рдХреЗрд▓рд╛:
EXEC 00
SETUID 00
SETGID 00
CAPABILITY 00
рдЬреЗ рдЕрд╕реЗ рд▓рд┐рд╣рд┐рд▓реЗ рдЖрд╣реЗ
LS_COLORS='ex=00:su=00:sg=00:ca=00:'
рдпрд╛рдЪрд╛ рдЕрд░реНрде: рд╡рд┐рд╢реЗрд╖рддрд╛рдиреБрд╕рд╛рд░ рдлрд╛рдЗрд▓реНрд╕ рд░рдВрдЧрд╡реВ рдирдХрд╛.
, рджреНрд╡рд╛рд░реЗ рдирд╛рд╣реА
рдЖрдореНрд╣реА рд╡реЗрдЧ рд╡рд╛рдврд╡рддреЛ ls
рдЖрдгрд┐ рдЬрд░ рддреБрдореНрд╣реА рдпрд╛рдкреИрдХреА рдХреЛрдгрддреАрд╣реА рддрдкрд╛рд╕рдгреА рдХреЗрд▓реА рдирд╛рд╣реА рддрд░ рдХреЙрд▓ рдХрд░рд╛ lstat()
рдЕрджреГрд╢реНрдп, рдЖрдгрд┐ рдЖрддрд╛ рд╣реА рдПрдХ рдкреВрд░реНрдгрдкрдгреЗ рд╡реЗрдЧрд│реА рдмрд╛рдм рдЖрд╣реЗ:
$ export LS_COLORS='ex=00:su=00:sg=00:ca=00:'
$ time strace -c ls --color=always $SCRATCH/dont | wc -l
10000
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
63.02 0.002865 36 80 getdents
8.10 0.000368 12 30 mmap
5.72 0.000260 14 18 mprotect
3.72 0.000169 15 11 open
2.79 0.000127 13 10 read
[...]
------ ----------- ----------- --------- --------- ----------------
100.00 0.004546 221 6 total
real 0m0.337s
user 0m0.032s
sys 0m0.029s
0,3 рдлрд╛рдпрд▓реАрдВрдЪреНрдпрд╛ рд╕реВрдЪреАрд╡рд░ 10 рд╕реЗрдХрдВрдж, рдПрдХ рд░реЗрдХреЙрд░реНрдб.
рд╢реЗрд░рд▓реЙрдХ рд╕реЗрдЯ рдХрд░рдд рдЖрд╣реЗ
рдбреАрдлреЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрд╕рд╣ 13 рд╕реЗрдХрдВрджрд╛рдВрдкрд╛рд╕реВрди рдХрд┐рд░рдХреЛрд│ рд╕рдорд╛рдпреЛрдЬрдирд╛рдВрд╕рд╣ 0,3 рд╕реЗрдХрдВрджрд╛рдВрдкрд░реНрдпрдВрдд LS_COLORS
рдореНрд╣рдгрдЬреЗ рдЕрдиреБрдкрд╕реНрдерд┐рддреАрдореБрд│реЗ 40-рдкрдЯ рдкреНрд░рд╡реЗрдЧ setuid
/ setgid
рдЖрдгрд┐ рд░рдВрдЧреАрдд рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓реНрд╕. рдЗрддрдХреЗ рдореЛрдареЗ рдиреБрдХрд╕рд╛рди рдирд╛рд╣реА.
рдЕрд░реНрдерд╛рдд, рд╣реЗ рдЖрддрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд╕рд╛рдареА рд╢реЗрд░рд▓реЙрдХрдордзреНрдпреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЖрд╣реЗ.
рдкрд░рдВрддреБ рдЖрдкрдг рд░рдВрдЧ рдкрд░рдд рдХрд░реВ рдЗрдЪреНрдЫрд┐рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рдЖрдкрдг рдлрдХреНрдд рдбреАрдлреЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрд╡рд░ рдкрд░рдд рдпреЗрдК рд╢рдХрддрд╛:
$ unset LS_COLORS
рдкрдг рдирдВрддрд░ рдмрд░реНтАНрдпрд╛рдЪ рдлрд╛рдИрд▓реНрд╕ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдбрд┐рд░реЗрдХреНрдЯрд░реАрдВрд╡рд░, рдХреЙрдлреА рдЪрд╛рд▓реВ рдЕрд╕рддрд╛рдирд╛ рддреА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рд╛ ls
.
рд╕реНрддреНрд░реЛрдд: www.habr.com