-
O GNU
tartem uma opção-C(ou--directory) que você pode usar. Por exemplotar -C /opt -x -z -f /tmp/my_file.tar.gzou
-
Você pode usar um subnível simples. Por exemplo
(cd /opt; tar -xvzf /tmp/my_file.tar.gz)depois disso, seu diretório atual ainda é
~/, ocdafeta somente a sub-rede. Essa abordagem é útil para comandos e utilitários que não possuem uma opção-Cou equivalente.
Note que você deve se certificar de que os caminhos armazenados no arquivo tar sejam caminhos relativos não caminhos absolutos . Isso é determinado pelo comando usado para criar o arquivo tar. Você pode verificar isso usando tar -tzf ... e inspecionando o primeiro caractere dos caminhos (por exemplo, /foo/... é um caminho absoluto, foo/... ou ./foo/... são relativos). Tome especial cuidado ao executar isso como root. Você estaria em um mundo de mágoa se em algum lugar em uma longa lista de caminhos relativos houver um /etc/passwd ou pior. Mas veja opção GNU tar -P - isso pode não ser um problema em sua plataforma específica. Eu checaria com cuidado antes de continuar.