Para criar um arquivo tar para um diretório, o tar
comando com compress
, verbose
e file
opções podem ser digitados da seguinte maneira:
$ tar -cvf my.tar my_directory/
Mas também funciona para fazê-lo desta maneira:
$ tar cvf my.tar my_directory/
Ou seja, sem o traço (-) que precede as opções. Por que você passaria um traço (-) para a lista de opções?
Respostas:
Existem vários padrões diferentes para opções que foram usadas historicamente em aplicativos UNIX. Vários antigos, como o tar , usam um esquema posicional:
como por exemplo, o alcatrão usa
Em uma primeira tentativa de evitar a confusão, o tar e alguns outros programas com o velho estilo de argumentos de bandeiras permitiram delimitar as bandeiras com traços, mas a maioria de nós simplesmente ignorou isso.
Alguns outros comandos têm uma sintaxe de linha de comando mais complicada, como dd (1), que usa bandeiras, sinais de igual, nomes de caminho, argumentos e uma perdiz em uma pereira, todos com abandono.
No BSD e nas versões posteriores do unix, isso tinha convergido mais ou menos para sinalizadores de caracteres únicos marcados com '-', mas isso começou a apresentar alguns problemas:
--output
.Em seguida, a Sun decidiu que o '-' extra era redundante e começou a usar sinalizadores de estilo longo com '-'s únicos.
E foi assim que surgiu a bagunça que está agora.
fonte
-
. Isso é da Sun?Você pode fornecer opções tar da maneira unix padrão, na
tar -c -f foo -v -B file1 file2 file3
qual você precisa que o traço diferencie entre opções e parâmetros ou os nomes de arquivo no final da linha de comando. Ou você pode reunir todas as opções no primeiro argumento, caso em que o traço é opcional.Depois, há
ps
onde você usa os hífens se estiver usando as opções SysV-ish e os deixa de fora se estiver usando as opções BSD-ish, apenas para tornar as coisas mais confusas.E não vamos nem falar
find
.fonte
O traço é usado para desambiguar entre os nomes e valores de parâmetros de uma opção. Eu acho que é mais uma convenção padrão.
fonte
best-practice
tag, porque eu pensei que pode se resumir a isso.Existem até quatro convenções para usar as opções de linha de comando unix:
Por exemplo:
fonte
Com o sinal de menos / traço (-), você precisa manter as opções em ordem precisa. Sem menos ordem de sua opção pode mudar.
Por exemplo:
fonte
f
essa levam um argumento cuja ordem é importante. Veja unix.stackexchange.com/a/239120/3169