Como usar o parâmetro --transform do tar?

2

Eu adicionei e zip o seguinte arquivo:

/opt/abc/xyz/abc.xml

para:

/tmp/backup/abc.xml.tar.gz

Eu estava tentando descompactar e descompactar no diretório /opt/abc/xyz/(same path) .

Eu me deparei com o comando abaixo. Eu executei como o usuário root , mas não encontrei nenhum erro ou saída. Eu estou esperando abaixo comando irá extrair abc.xml de abc.xml.tar.gz e renomeado para abc.xml_v9 .

tar --force-local --transform='s/abc.xml/abc.xml_v9/' -zxpsf /tmp/backup/abc.xml.tar.gz -C /

saída deve ser

/opt/abc/xyz/abc.xml_v9

página man do tar diz abaixo da informação

File name transformations:      

       --transform=EXPRESSION, --xform=EXPRESSION
              use sed replace EXPRESSION to transform file names

              File name matching options (affect both exclude and include patterns):

Alguém pode me ajudar a entender o comando acima com algum exemplo?

    
por user112232 04.02.2018 / 09:21

1 resposta

1

Usando sua origem de arquivos de exemplo /tmp/backup/abc.xml.tar.gz e destino /opt/abc/xyz/abc.xml_v9 . você pode usar este comando:

tar --transform='flags=r;s|abc.xml|abc.xml_v9|' -xvf abc.xml.tar.gz -C /opt

Ou

tar --transform='flags=r;s/abc.xml/abc.xml_v9/' -xvf abc.xml.tar.gz -C /opt

E você vai conseguir

/opt/abc/xyz/abc.xml_v9

Veja:

link

link

    
por 14.12.2018 / 16:36

Tags