Qual é a diferença entre ls >
e ls >>
? Preciso entender isso para minha computação GCSE, mas não sei qual é a diferença.
command-line
Helen Schofield
fonte
fonte
man bash
).Respostas:
>
&>>
são operadores de redirecionamento; eles transferem a saída de algo, neste casols
, para outro lugar. Se essa saída for para um arquivo, o arquivo>
será truncado - ou seja, excluirá qualquer conteúdo anterior, enquanto>>
acrescentará novos dados ao final do arquivo, mantendo o conteúdo anterior. Isso funcionará com qualquer entrada, entãoecho
&cat
, por exemplo, também pode ser usado dessa maneira.Também é interessante o
|
operador, que passa os dados para outro aplicativo -ls | cat -n
fornecendo uma listagem numerada de linhas!Tubos é o termo relevante.
fonte
strace
saída parabash -c 'echo a > blah'
:open("blah, O_WRONLY|O_CREAT|O_TRUNC, 0666)
, então truncar seria o termo certo.>>
to write to a file (ex: a log) também tem o lado legal efeito para não ter caracteres "Nul" aparecer no início do arquivo saif se o arquivo estiver truncado enquanto o processo ainda estiver gravado nele! (ex: durante a rotação do arquivo de log). Como "foo> file" não procura, ele não percebe a mudança de tamanho e ainda aponta para além do início, e o SO preenche Nul.foo >>file
procura e, portanto, aponta para a nova posição (o começo).Os símbolos
>
e>>
são usados para redirecionar a saída para um arquivo.Ambos criarão o arquivo se o arquivo não existir. Se o arquivo já existir,
>
substituirá o arquivo em que como>>
anexará os dados ao arquivo.Então
ls > myfile
, criará um documento nomeadomyfile
se ele não existir. Semyfile
já estiver presente e contiver alguns dados, eles serão substituídos pelos novos dados que você passar.Considerando que
ls >> myfile
irá criar um arquivo se não existir e gravar dados para ele. Se o arquivo existir com alguns dados, novos dados serão adicionados ao final.fonte
Se você usar um único>, ele substituirá o arquivo se ele já existir. Tenha muito cuidado ao usar este.
Se você usar dois >>, ele será anexado (em outras palavras, comece a escrever na parte inferior do arquivo) se ele já existir. Caso contrário, ele cria um novo arquivo, se não existir.
fonte