Saya sedang membuat skrip shell untuk mengemas beberapa file. Saya zip direktori seperti ini:
zip -r /Users/me/development/something/out.zip /Users/me/development/something/folder/
Masalahnya adalah bahwa arsip out.zip yang dihasilkan memiliki seluruh path file di dalamnya. Yaitu, ketika membuka ritsleting, itu akan memiliki seluruh jalur "/ Users / me / development / anotherthing /" di dalamnya. Apakah mungkin untuk menghindari jalur yang dalam ini saat meletakkan direktori ke dalam arsip?
Ketika saya menjalankan zip dari dalam direktori target, saya tidak punya masalah ini.
zip -r out.zip ./folder/
Dalam hal ini, saya tidak mendapatkan semua sampah. Namun, skrip yang dimaksud akan dipanggil dari mana saja.
FWIW, saya menggunakan bash di Mac OS X 10.6.
$ pushd /some/path ; do-something ; popd
... atau bahkan dengan subkulit:$ ( cd /some/path ; do-something )
&&
bukan;
merupakan ide yang baik sehingga perintah lain tidak berjalan jikacd
gagal (salah ketik, atau masalah lainnya):(cd /some/path && do-something)
zip -j
?Iya nih. Gunakan
-j
opsi denganzip
.-j
adalah "junk the path". Menurut halaman manual di zip :Menggunakan
-j
berarti perintah berikut:Akan membuat arsip yang terlihat seperti:
sumber
Ada
pushd
danpopd
dan$OLDPWD
. Dengan asumsi$PWD
is/Users/me/development
do:Sekarang
$PWD
kembali ke/Users/me/development
sumber