Saya mencoba mengompres folder menjadi arsip .7z. Folder ini berisi tautan simbolis ke beberapa hal lain di luar folder (baik direktori maupun file).
Ternyata 7zip hanya mengarsipkan tautannya sendiri yang bukan itu yang saya maksudkan. Apakah ada cara untuk memberitahu 7zip bahwa saya ingin mengarsipkan hal-hal yang tertaut, bukan tautan itu sendiri? (Yaitu jika ada nama symlink foo
yang menunjuk C:\stuff\foo
, saya ingin memasukkan C:\stuff\foo
direktori dalam arsip sebagai pengganti foo, bukan symlink 0-byte.))
Apakah ada solusi yang masuk akal selain menambahkan file dan folder yang dimaksud? Ada sekitar 10.000 file yang direferensikan melalui symlink sehingga menambahkan semuanya secara individual akan memakan waktu berjam-jam ... Mungkin ada program yang membuat folder pementasan dengan file asli di dalamnya dan kemudian meneruskannya ke 7zip. Atau hanya pengarsip yang menangani symlink dengan lebih baik.
Saya menjalankan Windows Vista. Semua tautan adalah tautan simbolik (mis. Dibuat dengan mklink link target
dan mklink /D link target
).
EDIT:
dir
perintah output untuk direktori tes yang lebih kecil:
C:\...>dir
Volume in drive C is OS
Volume Serial Number is 0A3D-CD6E
Directory of C:\...
09/04/2010 18:12 <DIR> .
09/04/2010 18:12 <DIR> ..
09/04/2010 18:10 975 real file.txt
09/04/2010 18:11 <SYMLINK> test file.txt [..\test file.txt]
2 File(s) 975 bytes
4 Dir(s) 5,214,355,456 bytes free
Membuat arsip 7z dengan hasil 7zip real file.txt
dimasukkan, tetapi test file.txt
ditambahkan sebagai file 0 byte, meskipun file yang ditautkan ke dalamnya ada dan berukuran 50KB.
sumber
Jawaban:
Tidak, ternyata tidak (sayangnya). Sebenarnya ada laporan bug pada 7zip yang meminta ini: http://sourceforge.net/tracker/?func=detail&aid=2846755&group_id=14481&atid=114481 tetapi dibuka pada Agustus 2009 dan tidak tersentuh sejak: - /.
Nah, jika Anda memiliki cukup ruang (dan waktu), Anda dapat membuat salinan folder, mengganti symlink dengan target mereka. Anda misalnya dapat menggunakan Robocopy dan sakelarnya
/sl
:Catatan: Hanya untuk menghindari kebingungan, catatan bahwa membangun Linux dari p7zip (pelabuhan 7zip) juga memiliki biner
7z
yang tidak mendukung pengarsipan file symbolic link poin ke (switch-l
). Namun, 7zip di Windows tidak memiliki sakelar ini.sumber
-l
switcher. zip dan gzip juga melakukan perintah khusus mereka.Jika Anda menggunakan Vista dan di atasnya, hapus symlink dan ganti dengan mklinks
Perhatikan bahwa mklink cukup kuat dan dapat menyertakan tautan ke jaringan dan sejenisnya.
Karena tampaknya ada beberapa kebingungan dalam hal ini, izinkan saya untuk mengklarifikasi. Saya berasumsi OP sebenarnya berbicara tentang persimpangan seperti yang diilustrasikan di sini http://en.wikipedia.org/wiki/NTFS_junction_point . Mklink tidak membuat persimpangan . Itu membuat tautan simbol yang BENAR dan saya mencobanya sendiri dan 7zip menghormatinya dengan sempurna. Anda juga harus menjadi administrator untuk membuat tautan simbolik mklink.
7zip akan mengarsipkan GB, tetapi TIDAK akan mengarsipkan GB2. EDIT: Sebenarnya pengujian lebih lanjut menunjukkan bahwa 7zip AKAN mengarsipkan kedua direktori menggunakan versi 4.65. Jadi saya tidak tahu apa masalahnya.
sumber