Como você define o comportamento padrão do tar?

2

Eu nunca precisei usar nenhuma outra opção para tar diferente de -cvzpf. Existe alguma maneira de definir isso como o comportamento padrão?

Embora eu reconheça que muitas vezes é impossível dizer por que alguém escreveu um programa de um jeito em oposição ao outro, eu não entendo porque o tar não faz coisas como a maioria dos utilitários de linha de comando, ou seja:

command -options /source/path /target/path

Por que é isso:

command -options /target/path /source/path
    
por CommaToast 27.11.2014 / 16:07

2 respostas

6

-cvzpf não é o comportamento padrão pelo menos pelos seguintes motivos.

  1. -c especifica a criação de um arquivo, é pelo menos igualmente provável   que um vai querer extrair um arquivo ou visualizar o conteúdo de um   arquivo.
  2. -v especifica operações detalhadas, algumas pessoas não querem  veja tudo
  3. -p isso é irrelevante para criar arquivos.
  4. -f no caso de o usuário querer enviar a saída para um dispositivo / programa diferente em vez de um arquivo (ou para o dispositivo de fita padrão nos Unices tradicionais).

Em relação a por que não é como você sugere, deve ser, por razões históricas, lidar com seu uso com drives de fita e com a codificação dos autores originais.

Em relação a tornar esse comportamento padrão, você poderia criar um alias, no entanto, você precisaria de um separado para extrair arquivos.

Uma maneira separada de alterar as opções padrão com a implementação GNU de tar é configurando a variável de ambiente TAR_OPTIONS . Embora eu tenha achado que não gosta quando você tenta especificar -f como uma das opções.

export TAR_OPTIONS=-tvzp

Observe que, embora você possa definir as opções, isso causará um erro se você passar uma opção conflitante para o tar. Por exemplo, se você tiver TAR_OPTIONS configurado como acima e tentar extrair um arquivo, você receberá o seguinte erro.

tar: You may not specify more than one '-Acdtrux' or '--test-label' option
Try 'tar --help' or 'tar --usage' for more information.
    
por 27.11.2014 / 16:27
0

Eu não sei as respostas para as duas perguntas sobre tar , mas posso dizer como definir o comportamento padrão de qualquer ferramenta de linha de comando.

Usando o comando alias , você pode substituir qualquer palavra em um shell por uma string. O uso exato do alias depende do shell que você usa. O exemplo a seguir funciona no bash shell:

alias tar='tar -cvzpf'

Isso substituirá a palavra tar por "tar -cvzpf". Para que o bash "lembre" disso, o comando alias precisa ser colocado em um script que é executado no início do shell bash, por exemplo, .bashrc . (Alguns usuários gostam de coletar todos os aliases em um script separado, por exemplo, .alias e chamar esse script de .bashrc .)

No shell csh / tcsh , você omite o = e use aspas duplas " em vez de aspas simples. Para descobrir qual shell você está usando, digite echo $SHELL .

    
por 27.11.2014 / 16:25

Tags