Por que executar um arquivo na linha de comando não usa automaticamente o binário para abri-lo como no Windows?

3

Tentar na linha de comando para abrir um arquivo no Windows abre o programa associado para a extensão do arquivo sem perguntas, por exemplo, o uso desse comando abriria o arquivo com o gerenciador de arquivos padrão que suporta arquivos .rar.

 $env:temp/SuperArchive.rar 

Por que no Linux, não consigo abrir um arquivo ou extraí-lo apenas usando um comando similar, como

~/tmp/SuperArchive.tar.gz 
    
por Zulgrib 14.10.2015 / 12:37

4 respostas

4

Isso se deve a uma diferença de design entre o Windows e o Unix em relação à abordagem de carregamento de programas. O Unix é basicamente centrado em aplicativos: você executa um aplicativo e, no aplicativo, abre alguns arquivos. O Windows é basicamente centrado no documento (a esse respeito): você abre um documento e o Windows escolhe o aplicativo para você.

Ambos os modelos têm suas vantagens e desvantagens. O Windows é um pouco mais fácil de usar, às vezes ... até que você queira abrir um documento em um aplicativo não-padrão. Ou você só queria ver o que há dentro do arquivo. Ou você queria extrair o arquivo em um diretório diferente. Ou você queria criar um novo documento no diretório atual. Gerenciadores de arquivos gráficos no Unix implementam um modelo centrado no documento.

Algo relacionado a essa decisão de projeto, o Unix facilita o acesso a aplicativos: todos os executáveis são instalados em um punhado de diretórios que estão no caminho de pesquisa do comando, para que você possa invocar um aplicativo a partir da linha de comando digitando o nome do executável. Por exemplo, para abrir um arquivo no Ark, execute ark myarchive.tar.gz . O sistema geralmente ajuda você a preencher apenas os nomes de arquivos que fazem sentido para esse aplicativo específico.

Você pode executar o comando xdg-open para abrir um arquivo em um aplicativo escolhido pelo sistema. Para um arquivo .tar.gz , é provável que ele chame um gerenciador de archive gráfico; qual programa é invocado depende de quais programas você instalou e em seu ambiente gráfico.

    
por 15.10.2015 / 03:13
4

Aplicações binárias e scripts com shebang são executáveis. Um arquivo .gz não é executável e você precisa de um programa para abri-lo.

Quando o xdg-utils estiver instalado, você poderá abrir o arquivo com o programa associado:

xdg-open <file>
    
por 14.10.2015 / 12:59
1

O significado original de tar foi T ape AR chiver.

Você usaria como

tar cf /dev/rmt0 dir1 dir2

que colocaria o conteúdo de dir1 e dir2 em qualquer fita na unidade local /dev/rmt0 .

O arquivo seria lido usando

tar xf /dev/rmt0 dir2

para extrair apenas dir2 da fita local.

Na filosofia unix, você pode arquivar em um arquivo ou um canal, por exemplo

tar cf - foo | ( ssh remote  "cd /distant ; tar xf - ")
  • para transferir do diretório local para / distante no host remoto

ou

tar cf project.tar foo

e mail project.tar para alguém.

Assim, o tar nunca foi concebido para ser auto-extraível. O mais próximo no unix era shar (arquivador de shell), que estava quase fazendo isso. Você receberia um arquivo chamado project.shar e depois executaria

sh project.shar

que iria esvaziar o arquivo na dir local (e trazer algum risco de segurança pelo caminho).

    
por 14.10.2015 / 13:02
-1

Os arquivos de extração automática precisam de um componente binário e um componente binário de um ambiente de execução não padrão como Win-DOS não funcionará em um ambiente de execução padrão como o UNIX.

Observe também que o UNIX é um padrão de código fonte, portanto, o UNIX não especifica um padrão binário exclusivo.

Houve arquivos de extração automática no UNIX (chamados de shell archies ), mas esses arquivos têm a desvantagem de não oferecerem uma compactação decente.

    
por 14.10.2015 / 13:01

Tags