Você parece ter entendido mal o significado de -C(que não é estranho, pois está documentado vagamente). Para detalhes, consulte serverfault.com/q/416002/86283 .
NN
Respostas:
48
A maneira mais fácil, se você particularmente não precisa usar -Cpara contar tara mudança para algum outro diretório, é simplesmente especificar o caminho completo para o arquivo na linha de comando. Em seguida, você pode estar no diretório que preferir para criar a estrutura de diretório que deseja dentro do arquivo morto.
A seguir, será criado o arquivo /var/www/file.tar.gzmorto e colocado a file1partir do diretório atual (o que quer que seja) nele, sem informações do caminho do arquivo morto .
tar czf /var/www/file.tar.gz file1
O caminho (para o arquivo morto, os arquivos constituintes ou ambos) também pode ser relativo. Se file1estiver dentro /tmp, você estiver dentro /var/spoole quiser criar o arquivo morto /var/www, poderá usar algo como:
tar czf ../www/file1.tar.gz /tmp/file1
Há um milhão de variações sobre o tema, mas isso deve ajudá-lo a começar. Adicione a vbandeira se você quiser ver o que tarrealmente faz.
@NN Absolutamente, mas como não temos idéia do que $PWDé, parecia mais seguro usar um caminho absoluto no exemplo.
um CVn 15/02
Na verdade, apenas pensei que fazia sentido incluir isso para mostrar que é uma opção disponível para resolver o problema.
NN
Dessa forma, o caminho do file1arquivo tar será /tmp. Isso pode ou não ser o que você espera.
Mouviciel
8
Transformo os dados compactados em um fluxo (-) e renomeio e localizo facilmente (>) onde quer que eu escolha (também sempre tar o caminho relativo (./), para que seja mais fácil lidar com a descompressão)
tar -cvf - ./dir-to-compress/* > /location-of-new-file/filename.tar
-C
(que não é estranho, pois está documentado vagamente). Para detalhes, consulte serverfault.com/q/416002/86283 .Respostas:
A maneira mais fácil, se você particularmente não precisa usar
-C
para contartar
a mudança para algum outro diretório, é simplesmente especificar o caminho completo para o arquivo na linha de comando. Em seguida, você pode estar no diretório que preferir para criar a estrutura de diretório que deseja dentro do arquivo morto.A seguir, será criado o arquivo
/var/www/file.tar.gz
morto e colocado afile1
partir do diretório atual (o que quer que seja) nele, sem informações do caminho do arquivo morto .O caminho (para o arquivo morto, os arquivos constituintes ou ambos) também pode ser relativo. Se
file1
estiver dentro/tmp
, você estiver dentro/var/spool
e quiser criar o arquivo morto/var/www
, poderá usar algo como:Há um milhão de variações sobre o tema, mas isso deve ajudá-lo a começar. Adicione a
v
bandeira se você quiser ver o quetar
realmente faz.fonte
$PWD
é, parecia mais seguro usar um caminho absoluto no exemplo.file1
arquivo tar será/tmp
. Isso pode ou não ser o que você espera.Transformo os dados compactados em um fluxo (-) e renomeio e localizo facilmente (>) onde quer que eu escolha (também sempre tar o caminho relativo (./), para que seja mais fácil lidar com a descompressão)
fonte
-C
é muito mais idiomático (e mais curto).Eu acho que deveria ser:
tar czf file.tar.gz -C /var/www/ file1
O que funciona para mim. Diz para mudar de diretório e depois escolher o arquivo.
fonte
Funcionou perfeitamente
fonte