Bash: O que faz echo xy | foo fazer?

0

A documentação do kernel mttr fornece este comando:

echo "base=0xf8000000 size=0x400000 type=write-combining" >| /proc/mtrr

Embora eu saiba o que > e | fazem, nunca os vi em combinação. Pesquisando bash >| não é muito útil. Meus experimentos não mostraram diferença entre echo bla > foo e echo bla >| foo .

    
por mrks 02.05.2014 / 16:10

2 respostas

5

Pesquisando man bash para as seqüências de caracteres mostra

-C If set, bash does not overwrite an existing file with the >, >&, and <> re- direction operators. This may be overridden when creating output files by using the redirection operator >| instead of >.

em set .

Então, significa "sobrescrever mesmo se -C for definido".

    
por 02.05.2014 / 16:13
0

Como você sabe, o echo grava no terminal ... Quando usado com um operador de redirecionamento, o eco é enviado para o arquivo de recebimento, mas neste caso / proc não é um arquivo ... / proc é equivalente a kernel32.dll no windows, ou seja, se eu quiser informações sobre o kernel, eu procuro / proc

Como / proc permite acesso direto ao kernel em execução, a saída deve ser redirecionada para o pipe e, em seguida, a informação no pipe é despejada no registro MTRR para a sua GPU, como disse a choroba, fazendo assim o redirecionamento FORÇADO, como este é o seu kernel. Esse comando define o BASE ADDRESS na memória como 4160749568 (dec) ou 0xf8000000 (hex) com uma alocação de memória de 4GB e permite a combinação de gravação

    
por 02.05.2014 / 16:23