Descompactar arquivos para diretórios de destino com base em nomes de arquivos tar

3

Eu tenho um arquivo tar chamado _home_rock_files.tar que foi tarrado em um servidor de origem e agora, depois que copiei esse tar para o servidor de destino, tenho a mesma estrutura de diretório que _home_rock_files . Agora, minha pergunta surge aqui.

Eu quero escrever um script de shell que automaticamente desmarque _home_rock_files.tar e desmarque o arquivo para /home/rock/files/ ; o caminho de destino é especificado no nome do arquivo como este.

    
por shekhar 04.11.2016 / 08:59

1 resposta

2

Eu criei este conjunto de comandos bash:

[sudo] find * -type f -name "SPECIFY THE FILE NAME"| 
    while read FILE ; do       # read the files
        destpath="$(echo "$FILE"| sed 's/_/\//g;s/.tar//')"; #rerplace all _s with /s and drop the .tar ext to achive destpath
        mkdir -p "$destpath";  #create the directory path of despath  
        tar xzf "$FILE" -C "$destpath" ;  #untar the file to destpath
    done
    
por αғsнιη 04.11.2016 / 13:04