Bagaimana cara mengurai arsip tanpa folder root, tetapi mempertahankan hierarki penuh di dalamnya?

25

Jika saya punya .tararsip, dan ketika saya mengekstraknya, itu memberi saya satu folder fooberisi beberapa hal lagi, seperti ini:

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

Apakah ada cara saya dapat memodifikasi .tarperintah untuk "melewati" folder root ( foodalam hal ini) dan hanya mengekstrak semua isi folder itu secara langsung ke cwd saya seperti ini:

something.txt
another.txt
bar/
  something-else.txt
callum
sumber

Jawaban:

29

Mudah. Cukup gunakan --strip-components=1di arsip seperti ini:

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

Dan seperti yang dijelaskan di tarhalaman manual:

--strip-components = NUMBER

strip NUMBER komponen utama dari nama file saat ekstraksi

Dengan logika adalah bahwa jika suatu jalur terdiri dari foo/something.txtmaka "komponen" pertama dari jalur itu akan foo/demikian --strip-components=1secara efektif akan menjatuhkan foo/dari jalan foo/something.txt.

JakeGould
sumber