Odpowiedzi:
Najłatwiejszym sposobem, jeśli nie musisz specjalnie używać -Cpolecenia tarzmiany 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.gzi umieszczenie file1w 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 file1jest w /tmp, jesteś w /var/spooli 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 vflagę, jeśli chcesz zobaczyć, co tarfaktycznie robi.
$PWDjest, najbezpieczniej było użyć ścieżki bezwzględnej w tym przykładzie.
file1do 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
-Cjest 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 .