Anda harus menguraikan dengan jelas tentang apa yang sebenarnya terjadi, karena cara Anda saat mengajukan pertanyaan membuat bola kristal yang paling canggih pun tampak sedikit kabur.
Jawaban:
2
Biasanya tarmemerlukan opsi --absolute-namesatau --absolute-pathsuntuk mempertahankan bagian root '/'saat membuat arsip. Bahkan jika Anda memaksanya dengan cara itu, ekstrak juga melewatkan yang terdepan '/'.
Namun, jika Anda memiliki arsip dengan pemimpin '/'dan Anda tidak melewatkannya saat mengekstraksi, jawaban NoahD harus bekerja dalam formulir ini,
pax -r -s ',/mnt,/new/path,' -v -f 13.2.tar
Saya pikir paxtidak menangani file terkompresi, jadi Anda harus mem-pipe setelah di-decompress pax.
Itu akan seperti ini (dengan asumsi Anda memiliki arsip yang di-gzip)
Perbedaan antara menggunakan kanonik (alias eksplisit) dan relatif (apa yang Anda sebut implisit) adalah apakah Anda menggunakan a /di awal.
Misalnya, jika direktori kerja saat ini adalah /usr/home/bob, perintah berikut memiliki efek yang persis sama
tar -xvf foo.tar *
tar -xvf ./foo.tar *
tar -xvf ./foo.tar ./*
tar -xvf /usr/home/bob/foo.tar *
tar -xvf / usr/home/bob/foo.tar ./*
tar -xvf / usr/home/bob/foo.tar / usr / home / bob / *
Tapi saya curiga ini bukan pertanyaan Anda. Sepertinya Anda perlu menentukan penggunaan disk, dan mencari direktori yang tidak lengkap. Ini bisa dilakukan dengan dfperintah.
df -k # space on disk in kilobytes
df -m # as above, but in meg
df -g # as above, but in gig
Dan Anda dapat menggunakan mountuntuk menunjukkan kepada Anda sistem file apa yang dipasang pada perangkat apa.
Jawaban:
Biasanya
tar
memerlukan opsi--absolute-names
atau--absolute-paths
untuk mempertahankan bagian root'/'
saat membuat arsip. Bahkan jika Anda memaksanya dengan cara itu, ekstrak juga melewatkan yang terdepan'/'
.Namun, jika Anda memiliki arsip dengan pemimpin
'/'
dan Anda tidak melewatkannya saat mengekstraksi, jawaban NoahD harus bekerja dalam formulir ini,Saya pikir
pax
tidak menangani file terkompresi, jadi Anda harus mem-pipe setelah di-decompresspax
.Itu akan seperti ini (dengan asumsi Anda memiliki arsip yang di-gzip)
Saya menemukan halaman wiki ini di Google sekarang.
sumber
Perbedaan antara menggunakan kanonik (alias eksplisit) dan relatif (apa yang Anda sebut implisit) adalah apakah Anda menggunakan a
/
di awal.Misalnya, jika direktori kerja saat ini adalah
/usr/home/bob
, perintah berikut memiliki efek yang persis samaTapi saya curiga ini bukan pertanyaan Anda. Sepertinya Anda perlu menentukan penggunaan disk, dan mencari direktori yang tidak lengkap. Ini bisa dilakukan dengan
df
perintah.Dan Anda dapat menggunakan
mount
untuk menunjukkan kepada Anda sistem file apa yang dipasang pada perangkat apa.sumber
Untuk membuat file tar dengan jalur relatif,
Untuk membongkar tar ke direktori tertentu selain dari direktori kerja saat ini, gunakan sakelar -C (huruf besar C).
Jika Anda ingin menghapus file dengan nama path absolut di dalamnya ke titik selain root, Anda mungkin perlu mengacaukannya
chroot(1)
.sumber
Saya percaya pax akan melakukan triknya
pax -r -s, / mnt, / gooddir, -f 13.2.tar
Seharusnya Anda mengganti di direktori root baru.
sumber