Bagaimana saya bisa zip / kompres symlink?

57

Apakah mungkin dan bagaimana saya bisa zip symlink dari shell linux?

DucDigital
sumber

Jawaban:

68

Anda dapat menyimpan symlink sebagai symlink (sebagai lawan dari salinan file / direktori yang mereka tuju) menggunakan --symlinksparameter standar zip.

Dengan asumsi fooadalah direktori yang mengandung symlink:

zip --symlinks -r foo.zip foo/

Setara dengan Rar:

rar a -ol foo.rar foo/

tar menyimpannya apa adanya secara default.

tar czpvf foo.tgz foo/

Perhatikan bahwa symlink hampir tidak menempati ruang disk dengan sendirinya (hanya sebuah inode). Itu hanya semacam pointer di sistem file, seperti yang mungkin Anda ketahui.

Eduardo Ivanec
sumber
1
saya tidak bisa menggunakan tar, tetapi --symlinks tidak berfungsi dengan zip. apakah Anda yakin itu paket zip standar?
DucDigital
Distribusi mana yang Anda miliki? Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license. Zip 3.0 (July 5th 2008).Bisakah Anda menggunakan rar sebagai gantinya? Lihat contoh tambahan.
Eduardo Ivanec
Hak Cipta (c) 1990-2006 Info-ZIP. Seluruh hak cipta. Ini Zip 2.32 mungkin karena ini. saya akan mencoba rar
DucDigital
1
Memisahkan rambut, tetapi secara teknis symlink tidak menempati ruang disk, memakan inode.
ttyS0
Benar bahwa. Sebenarnya dari apa yang saya baca di masa lalu mereka bahkan lebih seperti file biasa yang berisi path ke file / direktori runcing. Sekarang mereka hanya jenis inode khusus jika saya ingat dengan benar.
Eduardo Ivanec
10

Di RHEL 5, kami punya

$ zip -h
Copyright (C) 1990-2005 Info-ZIP
Type 'zip "-L"' for software license.
Zip 2.31 (March 8th 2005). Usage:
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
(snip)
  -y   store symbolic links as the link instead of the referenced file
nodakai
sumber
Sama dengan OpenSUSE Leap. Jadi memang demikian zip -y -r foo.zip foo/.
David Faure