
我正在使用 unzip 從儲存 ZIP 檔案的海量檔案管理器裝置中提取檔案。
unzip -o somefile.zip -c *somecriteria* -d somedirectory
它工作得很好,但是當我嘗試添加另一個條件來縮小搜尋範圍時,解壓縮不會提取任何內容,即使檔案存在。
unzip -o somefile.zip -c *criteriaA* -c *criteriaB* -d somedirectory
從 ZIP 擷取檔案時有沒有辦法指定標準?
答案1
我認為您對解壓縮命令列感到困惑。
-bash-3.1$ unzip -h
UnZip 5.52 of 28 February 2005, by Info-ZIP. Maintained by C. Spieler. Send
bug reports using http://www.info-zip.org/zip-bug.html; see README for details.
Usage: unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]
Default action is to extract files in list, except those in xlist, to exdir;
file[.zip] may be a wildcard. -Z => ZipInfo mode ("unzip -Z" for usage).
-p extract files to pipe, no messages -l list files (short format)
-f freshen existing files, create none -t test compressed archive data
-u update files, create if necessary -z display archive comment
-x exclude files that follow (in xlist) -d extract files into exdir
modifiers: -q quiet mode (-qq => quieter)
-n never overwrite existing files -a auto-convert any text files
-o overwrite files WITHOUT prompting -aa treat ALL files as text
-j junk paths (do not make directories) -v be verbose/print version info
-C match filenames case-insensitively -L make (some) names lowercase
-X restore UID/GID info -V retain VMS version numbers
-K keep setuid/setgid/tacky permissions -M pipe through "more" pager
Examples (see unzip.txt for more info):
unzip data1 -x joe => extract all files except joe from zipfile data1.zip
unzip -p foo | more => send contents of foo.zip via pipe into program more
unzip -fo foo ReadMe => quietly replace existing ReadMe if archive file newer
在Unix中,
unzip zipfile.zip -d destdir "wildcard1" "wildcard2"
應該管用。 (通配符周圍的引號是為了防止 shell 擴展它們。)