extrai o arquivo tar para o diretório existente no git-bash

1

Eu tenho uma instalação do Drupal 8 em um diretório chamado my-D8 . Eu quero atualizá-lo para o drupal 8.3.1 e baixei drupal-8.3.1.tar.gz . Eu tenho ambos no meu diretório sites :

/d/sites $ ls
drupal-8.3.1.tar.gz  my-d8/

Quando tento extrair o arquivo, ele coloca tudo em um diretório chamado drupal-8.3.1 , o que eu esperava. No entanto, desejo que todos os arquivos e subdiretórios desse diretório sobrescrevam (e incluam) o diretório my-d8 existente.

Eu tentei o comando mv , mas no meu shell, ele se recusou a sobrescrever os subdiretórios não vazios existentes.

$ mv drupal-8.3.1/* my-d8/
mv: cannot move 'drupal-8.3.1/core' to 'my-d8/core': Directory not empty
mv: cannot move 'drupal-8.3.1/modules' to 'my-d8/modules': Directory not empty
...

Pesquisando, achei essa resposta do AskUbuntu , mas quando tentei, não funcionou bem :

$ tar -xvf  drupal-8.3.1.tar.gz --directory=my-d8  --strip-components=1
drupal-8.3.1/.csslintrc
drupal-8.3.1/.editorconfig
drupal-8.3.1/.eslintignore
... ^C

Em vez de sobrescrever arquivos na raiz do repositório, basta colocar o subdiretório no repositório:

$ ls my-d8/drupal-8.3.1/
autoload.php  composer.json  composer.lock  core/  README.txt

Editar Eu tentei a resposta do dope-ghoti, e depois de um exame atento, não funcionou:

$ ls
drupal-8.3.1.tar.gz  my-D8/

$ tar -zx -f drupal-8.3.1.tar.gz -C my-D8

$ ls my-D8/drupal-8.3.1/
autoload.php  composer.json  ...

$ cd my-D8/

$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

        drupal-8.3.1/

nothing added to commit but untracked files present (use "git add" to track)

Como posso extrair facilmente os arquivos e diretórios nos seus respectivos locais no meu repositório?

$ tar --version
tar (GNU tar) 1.29
    
por user394 19.04.2017 / 22:26

1 resposta

1

Do manual:

 -C DIR
       change to directory DIR

Isso altera o diretório de trabalho do processo tar . Você também pode usar --strip para remover o primeiro componente dos nomes de arquivos (por exemplo, drupal-8.3.1/ ) no arquivo. Então você pode:

tar --strip=1 -zx -f drupal-8.3.1.tar.gz -C my-d8

Se o seu tar não tiver --strip , ele deverá ter pelo menos --transform :

tar --transform 's_drupal-8.3.1/__' -zx -f drupal-8.3.1.tar.gz -C my-d8
    
por 19.04.2017 / 22:39

Tags