A ordem de classificação lexical é muito simples: caracteres com um valor numérico menor são ordenados antes dos caracteres com um valor mais alto. Como quase todos os sistemas derivados do UNIX atualmente usam conjuntos de caracteres derivados do ASCII estendidos , a ordenação seria, portanto, de 8 bits da seguinte forma:
- Caracteres de controle: NUL-US (
^@
-^_
: 0-26) - Caracteres para impressão:
(espaço) -
/
,0
-9
,:
-@
,A
-Z
,[
-'
,a
-z
,{
-~
- Caracteres estendidos: coisas posteriores (depende da página de códigos)
Por causa disso, aqui estão alguns nomes de arquivos, na ordem:
!afile
0Afile
0_file
0afile
0~file
20-cpu_freq
20_cpu_freq
94Cpufreq
94cpufreq
Por "arquivo com nome similar", as duas listas de diretórios são combinadas, e se dois arquivos tiverem o mesmo nome, o em /etc/pm/sleep.d
ganha: se você tivesse /usr/lib/pm-utils/sleep.d/94cpufreq
e /etc/pm/sleep.d/94cpufreq
, o último seria lido .
A ordem em que estes serão executados é ditada pela operação que o pm-utils
está fazendo (de HOWTO.hooks ):
SLEEP.D SPECIFIC NOTES
For any given sleep/wakeup cycle, the hooks in
sleep.d
are run twice:
- Once in C lexical sort order before the system goes to sleep, and
- Once in reverse C lexical sort order when the system wakes up.
TL; DR: 20_cpu_freq
será executado primeiro e 94cpufreq
segundo quando se preparar para dormir, e vice-versa ao acordar.