Bagaimana cara menggunakan perintah tar Unix dengan filepath implisit?

9

Saya menggunakan tar -xvfperintah dan sedang mengambil jalur eksplisit. Namun, jalannya penuh.
Contoh:

tar -xvf 13.2.tar

Itu mengambil jalur /mntfolder. The /folder penuh.

Bagaimana saya bisa tar file dengan jalur implisit?

Anthon
sumber
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)

gunzip -c 13.2.tar.gz | pax -r -s ',/mnt,/new/path,' -v

Saya menemukan halaman wiki ini di Google sekarang.

nik
sumber
2

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.

Anthon
sumber
0

Untuk membuat file tar dengan jalur relatif,

cd /parent/of/dir/to/tar
tar cvf subdir.tar subdir

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).

Robc
sumber
0

Saya percaya pax akan melakukan triknya

pax -r -s, / mnt, / gooddir, -f 13.2.tar

Seharusnya Anda mengganti di direktori root baru.

Anthon
sumber