Odpowiedzi:
Najłatwiejszym sposobem, jeśli nie musisz specjalnie używać -C
polecenia tar
zmiany w innym katalogu, jest po prostu określenie pełnej ścieżki do archiwum w wierszu poleceń. Następnie możesz znajdować się w dowolnym katalogu, w którym chcesz utworzyć strukturę katalogów, którą chcesz w archiwum.
Poniższe spowoduje utworzenie archiwum /var/www/file.tar.gz
i umieszczenie file1
w nim bieżącego katalogu (cokolwiek by się nie zdarzyło), bez informacji o ścieżce w archiwum.
tar czf /var/www/file.tar.gz file1
Ścieżka (do archiwum, plików składowych lub obu) może oczywiście być względna. Jeśli file1
jest w /tmp
, jesteś w /var/spool
i chcesz utworzyć archiwum /var/www
, możesz użyć czegoś takiego:
tar czf ../www/file1.tar.gz /tmp/file1
Jest milion wariantów tego tematu, ale to powinno zacząć. Dodaj v
flagę, jeśli chcesz zobaczyć, co tar
faktycznie robi.
$PWD
jest, najbezpieczniej było użyć ścieżki bezwzględnej w tym przykładzie.
file1
do archiwum tar /tmp
. To może, ale nie musi być to, czego oczekujesz.
Przekształcam skompresowane dane w strumień (-) i łatwo zmieniam nazwę i lokalizuję (>), gdziekolwiek wybiorę (Zawsze również zapisuję ścieżkę względną (./), aby łatwiej było sobie z nią poradzić podczas dekompresji)
tar -cvf - ./dir-to-compress/* > /location-of-new-file/filename.tar
-C
jest znacznie bardziej idiomatyczne (i krótsze).
Myślę, że powinno to być:
tar czf file.tar.gz -C /var/www/ file1
Który działa dla mnie. Mówi, aby zmienić katalog, a następnie wybrać plik.
-C
(co nie jest dziwne, jak zostało to mętnie udokumentowane). Aby uzyskać szczegółowe informacje, patrz serverfault.com/q/416002/86283 .