selama membongkar dengan tar sembunyikan pesan kesalahan: 'tar: Menghapus awalan `/' dari nama anggota 'untuk arsip yang dibuat dengan --absolute-names


1

Itu bukan duplikat, pertanyaan lain tentang stackexchange adalah tentang menyingkirkan pesan ini saat arsip dibuat.

Apakah mungkin, mengingat arsip yang dibuat dengan -Popsi (dengan memimpin `/ ')?

Saya memiliki arsip yang dibuat dengan " --absolute-names" ( -Popsi) - dengan leading /.

Saya ingin membongkarnya, dengan / dilucuti (tar melakukannya secara default).

Ini hampir ideal, tetapi saya ingin membungkam:

tar: Removing leading `/' from member names.

tanpa menghapus pesan lain (jadi kekerasan dalam bentuk 2>/dev/nullbukan solusi).

Saya menemukan beberapa solusi bagaimana membungkam pesan ini selama membuat arsip tetapi tidak ada untuk membongkar. Saya tahu tentang grep -vtetapi itu akan (a) menyembunyikan kode kesalahan dari tar (b) menambahkan kode kesalahan sendiri jika pesan tentang / tidak dilucuti.

Situasi ini dapat direplikasi dengan

cd /home/user/tmp
touch a.txt
mateusz@Grisznak:~/Desktop/tmp$ tar --create -P /home/user/tmp > a.tar
mateusz@Grisznak:~/Desktop/tmp$ tar --extract --file=a.tar 

Untuk menghindari masalah XY: Saya membongkar arsip yang dibuat oleh backupgem ( http://backup.github.io/backup/v4/ ).

Jawaban:


1

Ini tampaknya melakukan apa yang Anda inginkan:

tar --extract --xform 's/^\///' --file=a.tar

Per halaman manual:

--transform, --xform EXPRESSION
      use sed replace EXPRESSION to transform file names

Jadi masih menghapus garis miring, tetapi tidak membicarakannya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.