Adakah cara untuk mengecualikan jalur wild-carded dari perintah 7zip baris perintah?
Saya melakukan sesuatu seperti ini:
7z.exe a -t7z archive.7z FolderToArchive\ -mx0
dan ingin mengecualikan salah satu \bin\*.*
atau \obj\*.*
folder yang ditemukan di bawah "FolderToArchive".
Untuk mengecualikan file, Anda dapat menggunakan -x
parameter. File bantuan memberikan contoh ini untuk menggunakan -x
:
7z a -tzip archive.zip *.txt -x!temp.*
Itu bagus untuk mengecualikan file. Tapi, sekali lagi, saya ingin mengecualikan folder yang ditentukan wildcard. Di bawah "FolderToArchive" saya ada beberapa folder, di bawah folder tersebut mungkin atau tidak mungkin bin\
dan obj\
folder. Saya ingin tidak memasukkan ini ke dalam arsip.
Saya sudah mencoba pola suka
-x!bin\*
-x!bin\*.*
-x!\bin\*
-x!\bin\*.*
-x!\\bin\\*
-x!\\bin\\*.*
Sepertinya tidak ada yang mengecualikan bin\
folder. Apakah ini hanya batasan 7zip?
sumber
-xr0!*.zip
- setidaknya saya tidak bisa membuatnya berfungsi tanpar0
.'-x!$RECYCLE.BIN'
untuk mengecualikan Keranjang Sampah dari drive eksternal.Untuk menghindari bug, gunakan -r atau -xr dengan hati-hati.
misalkan Anda memiliki direktori seperti:
dan jalankan perintah:
apa yang Anda dapatkan di arsip.7z:
Yaitu, the
.\path2\
dan.\path5\
menjadi folder teratas dalam archive.7z, dan keduabin
direktori dikecualikan.-x hanya mendukung path / nama file relatif ke folder teratas dalam arsip.
Jadi, jika Anda hanya ingin mengecualikan
.\path1\path2\bin
, tetapi untuk memasukkan semua direktori 'bin' lainnya, perintahnya harus seperti ini:Saya mencoba menggunakan path absolut di -x, tetapi tidak pernah berhasil.
Memperbarui:
Ada opsi
-spf
di 7z untuk Linux yang bekerja dengan path absolut.Menurut Marco ,
-spf
juga tersedia di Windows mulai 7-zip 15.14sumber
'-x!path2\bin'
untuk tidak mengalami substitusi shell ... (membuat Anda lebih lama, "perintah" salah secara sintaksis ...)'-xr!\.foo'