Wygląda na to, że źle zrozumiałeś -C(co nie jest dziwne, jak zostało to mętnie udokumentowane). Aby uzyskać szczegółowe informacje, patrz serverfault.com/q/416002/86283 .
NN
Odpowiedzi:
47
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.
@ NN Oczywiście, ale ponieważ nie mamy pojęcia, co to $PWDjest, najbezpieczniej było użyć ścieżki bezwzględnej w tym przykładzie.
CVn
Rzeczywiście, po prostu pomyślałem, że warto to uwzględnić, aby pokazać, że jest to dostępna opcja rozwiązania problemu.
NN
W ten sposób będzie ścieżka file1do archiwum tar /tmp. To może, ale nie musi być to, czego oczekujesz.
mouviciel
8
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
(co nie jest dziwne, jak zostało to mętnie udokumentowane). Aby uzyskać szczegółowe informacje, patrz serverfault.com/q/416002/86283 .Odpowiedzi:
Najłatwiejszym sposobem, jeśli nie musisz specjalnie używać
-C
poleceniatar
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 umieszczeniefile1
w nim bieżącego katalogu (cokolwiek by się nie zdarzyło), bez informacji o ścieżce w archiwum.Ś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:Jest milion wariantów tego tematu, ale to powinno zacząć. Dodaj
v
flagę, jeśli chcesz zobaczyć, cotar
faktycznie robi.źródło
$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)
źródło
-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.
źródło
Działał idealnie
źródło