tar extract depois de criar o nome do diretório baseado no arquivo tar

1

Eu tenho diferentes arquivos zipados (tgz) Eu quero criar um nome de diretório com o nome do arquivo zipado e mover o arquivo zipado para sua respectiva pasta e descompactá-los lá.

Exemplo: -

Eu tenho dois arquivos compactados,

   email_raw_data_latest-2017-08-01-22-00-01.tgz
   email_raw_data_latest-2017-08-02-22-00-01.tgz
   email_raw_data_latest-2017-08-03-22-00-01.tgz

Eu quero criar o primeiro diretório como este,

   email_raw_data_latest-2017-08-01-22-00-01
   email_raw_data_latest-2017-08-02-22-00-01
   email_raw_data_latest-2017-08-03-22-00-01 

mova os arquivos compactados para as pastas respeitadas e descompacte-os.Para ficar atento, por favor, me ajude.

    
por krishna kumar 22.01.2018 / 08:36

1 resposta

3

O GNU tar tem uma opção -C (aka --directory ) para alterar o diretório antes de fazer qualquer coisa com o arquivo tar. Com isso, você poderia fazer algo assim:

for t in *.tgz ; do
  bn="$(basename "$t" .tgz)"
  mkdir -p "$bn"
  tar xfz "$t" -C "$bn" 
  mv "$t" "$bn"
done
    
por 22.01.2018 / 08:42