Você precisa usar a opção --strip-components
do tar; isso é porque os caminhos que você não precisa estão contidos no arquivo tar.
Então, por exemplo, se o tar contiver isto: srv/test/www.testwebsite.com/index.html
e você deseja obter esse mytestdirectory/index.html
, você precisa
$ cd /path/to/mytestdirectory
$ tar xf testwebsite.tar --strip-components=3
Se você usar o comando verbose, ainda configurará os nomes de arquivos originais completos, para que também possa adicionar o argumento --show-transformed
para listar os caminhos modificados:
$ tar tfz workspace.tar.gz --strip-components=2 workspace/project
-rw-rw-r-- guido/guido 11134 2009-01-22 23:21 workspace/project/aaa
-rw-rw-r-- guido/guido 11134 2009-01-22 23:21 workspace/project/bbb
[... list continues ...]
$ tar tfz workspace.tar.gz --strip-components=2 --show-transformed workspace/project
-rw-rw-r-- guido/guido 11134 2009-01-22 23:21 aaa
-rw-rw-r-- guido/guido 11134 2009-01-22 23:21 bbb
[ ... and so on ...]
Para corrigir sua situação com mv
, seria:
# cd /path/to/mytestdirectory
# mv srv/test/www.testwebsite.com/* .
Por cuidar de arquivos ocultos, uma lição será esta:
# shopt -s dotglob
executado antes dos comandos acima, para o glob também corresponder a dotfiles; ou melhor ainda, exclua seu diretório de destino atual, mova e renomeie o que você deseja copiar:
[ delete or rename current /path/to/mytestdirectory ]
# cd /path/to
# mv srv/test/www.testwebsite.com/ mytestdirectory/
# rmdir srv/test/ srv/