"Peringatan zip: nama tidak cocok" saat mengompresi direktori

19

Saya memiliki folder sekitar 180 GB, saya perlu zip seperti:

zip -p password /Volumes/GGZ/faster/mybigfolder/* /Volumes/Storage\ 4/archive.zip

Tetapi tertulis:

    zip warning: name not matched: /Volumes/Storage 4/archive.zip

Jadi bagaimana saya melakukan ini? Pada catatan lain, archive.ziptidak ada, tapi saya mencoba membuatnya.

Nama tampilan
sumber
Cobazip -P password /Volumes/Storage\ 4/archive -p /Volumes/GGZ/faster/mybigfolder/*
Costas

Jawaban:

7

Perintah Anda harus:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/

Halaman manual ( man zip), menunjukkan Anda harus memiliki:

zip <options> <archive> <inpath...>

Selain itu, -ropsi untuk rekursi sangat direkomendasikan untuk shell glob "*" untuk ini.

Danny Staple
sumber
Perangkap terkait lainnya adalah kesalahan pengetikan sederhana (mis. Jika Anda menyalin perintah dari satu skrip ke skrip lain). Misalnya, alih-alih winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*, Anda mengetik secara tidak sengaja winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*. Perhatikan ekstra Output.zip... mudah dilakukan!
AlainD
23

Kesalahan ini juga dapat disebabkan oleh tautan simbolik di pohon direktori yang sedang dikompresi.

Jika ini tidak memiliki tujuan yang benar (mungkin karena direktori telah dipindahkan atau disalin dari tempat lain), zip akan berusaha mengikuti symlink untuk mengarsipkan file target.

Anda dapat menghindari ini (dan juga mendapatkan efek yang mungkin Anda inginkan, yaitu tidak mengarsipkan banyak salinan file) dengan menggunakan opsi -y(atau --symlinks).

Bob Eager
sumber
0

Gunakan flag rekursif ( -r) alih-alih glob ( *) untuk mencocokkan file yang akan dikompres. Selain itu, tentukan nama arsip terlebih dahulu dan kemudian berikan daftar file:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/
53c
sumber
0

Saya juga mendapatkan kesalahan ini di masa lalu karena alasan berbeda yang -rtidak bisa diperbaiki oleh saklar. Apa yang terjadi adalah bahwa saya mendasarkan file untuk ditambahkan ke zip dengan kode / variabel bash berikut

somevar=`ls -1 somedir`

Masalahnya adalah bahwa lshanya daftar file off seolah-olah berada di direktori saat ini dan inilah sebabnya zipmengeluh (pada dasarnya file tidak ada untuk zip karena sedang disuruh melihat di direktori yang salah / saat ini).

Jika ini adalah masalah Anda, Anda dapat memperbaikinya seperti ini:

somevar=`ls -1d somedir/*`

Seperti yang Anda lihat, saya menggunakan -dsaklar dan juga /*pada akhir nama direktori dan kemudian file-file tersebut berhasil ditambahkan.

Areeb Soo Yasir
sumber