Se você quer dizer nua -
no final do tar
comando, isso é comum em muitos comandos que desejam usar um arquivo.
Ele permite que você especifique a entrada ou saída padrão em vez de um nome de arquivo real .
Esse é o caso do seu primeiro e terceiro exemplo. Por exemplo, o cdrecord
comando pega a entrada padrão (o fluxo de imagem ISO produzido por mkisofs
) e grava diretamente no /dev/dvdrw
.
Com o cd
comando, toda vez que você muda de diretório, ele armazena o diretório de onde você veio. Se você fizer isso cd
com o -
"nome do diretório" especial , ele usará esse diretório lembrado em vez de um real. Você pode alternar facilmente entre dois diretórios rapidamente usando isso.
Outros comandos podem ser tratados -
como um valor especial diferente .
-
para branches git, ou seja, você pode voltar para o branch anterior comgit checkout -
-
, você pode encontrar sua explicação na página do manual.Não é mágica. Alguns comandos interpretam
-
como o usuário deseja ler de stdin ou gravar em stdout; não há nada de especial nisso para o shell.fonte
cd -
;bash(1)
tratacd -
como se você tivesse escritocd $OLDPWD
.cd
- um comando interno do shell - interpreta o próprio traço. Sem "mágica" :-)Redirecionamento de ou para
stdin
oustdout
.Consulte: http://tldp.org/LDP/abs/html/special-chars.html#DASHREF2
fonte
<
,>
,|
, etc).-
significa exatamente o que cada comando deseja que signifique. Existem várias convenções comuns e você viu exemplos da maioria delas em outras respostas, mas nenhuma delas é 100% universal.Não há nada mágico sobre o
-
personagem no que diz respeito ao shell (exceto que o próprio shell e alguns de seus comandos embutidos comocd
eecho
, usam-no de maneiras convencionais). Alguns caracteres, como\
,'
e"
, são "mágicos", tendo significados especiais onde quer que apareçam. Estes são "metacaracteres de shell".-
não é assim.Para ver como um determinado comando usa
-
, leia a documentação desse comando .fonte
A mágica está na convenção. Por milênios, as pessoas usaram '-' para distinguir opções de argumentos, e usaram '-' em um nome de arquivo para significar stdin ou stdout, conforme apropriado. Não subestime o poder da convenção!
fonte
Significa usar o fluxo de entrada padrão do programa.
No caso de
cd
, significa algo diferente: mude para o diretório de trabalho anterior.fonte