Qual é a diferença entre “” e “” no comando shell?

28

Alguém poderia me explicar a diferença usando > e >> ao usar o comando shell?

Exemplo:

ps -aux > log
ps -aux >> log

Parece que os resultados são os mesmos.

    
por whale_steward 27.11.2013 / 06:35

3 respostas

32

> é usado para gravar em um arquivo e >> é usado para anexar a um arquivo.

Assim, quando você usar ps aux > file , a saída de ps aux será gravada em file e se um arquivo chamado file já estiver presente, seu conteúdo será sobrescrito.

E se você usar ps aux >> file , a saída de ps aux será gravada em file e se o arquivo denominado file já estiver presente, o arquivo agora conterá seu conteúdo anterior e também o conteúdo de ps aux , escrito após seu conteúdo antigo de file .

    
por jobin 27.11.2013 / 06:46
8

se você escrever no terminal

ps aux > log

Ele colocará a saída de ps aux no arquivo nomeado do log.

se você colocar

ps aux >> log

a próxima saída será anexada abaixo da primeira. se você colocar apenas um > , ele irá sobrescrever o arquivo anterior.

    
por souravc 27.11.2013 / 06:41
4

Sim, >> anexa, > sempre sobrescreve / destrói o conteúdo anterior.

ps -aux > log

é o mesmo que

rm log 2>/dev/null
ps -aux >> log

No Wintel, o mesmo acontece com os scripts .bat , .cmd e .ps1 ; patrimônio comum, bom senso.

    
por mckenzm 09.03.2015 / 02:10