Jak rozpakować archiwum bez folderu głównego, ale zachowując w nim pełną hierarchię?

25

Jeśli mam .tararchiwum i po rozpakowaniu, daje mi pojedynczy folder foozawierający więcej rzeczy, takich jak ten:

foo/
  something.txt
  another.txt
  bar/
    something-else.txt

Czy istnieje sposób, w jaki mogę zmodyfikować .tarpolecenie, aby „pominąć” folder główny ( foow tym przypadku) i po prostu wypakować całą zawartość tego folderu bezpośrednio do mojego cwd w następujący sposób:

something.txt
another.txt
bar/
  something-else.txt
kalus
źródło

Odpowiedzi:

29

Łatwo. Po prostu użyj --strip-components=1w archiwum w ten sposób:

tar -xf archive.tar --strip-components=1

I jak wyjaśniono na oficjalnej tarstronie podręcznika :

--strip-components = NUMBER

usuń NUMBER wiodące komponenty z nazw plików podczas ekstrakcji

Z logiką będącej że jeśli ścieżka składa się foo/something.txtwtedy pierwszy „składnik” z tej ścieżki byłaby foo/tak --strip-components=1skutecznie upuść foo/ze ścieżki foo/something.txt.

JakeGould
źródło