2012-11-05 68 views

回答

40

使用將分別對每個文件運行壓縮命令,試試這個:

find . -name <name> -print | zip name.zip [email protected] 

[email protected]告訴拉鍊從輸入讀取文件,從人zip(1)

- @文件名單。如果文件列表被指定爲 - @ [MacOS上不存在],則zip將從標準輸入中取出輸入文件的列表,而不是從命令行輸入。

+0

你能解釋一下 - @符號嗎? – LOGAN

+0

@LOGAN是的,檢查更新 – iabdalkader

+0

@LOGAN如果回答你的問題,那麼請接受答案。 – iabdalkader

12

你也可以提供名稱作爲find命令的結果:

zip name.zip `find . -name <name> -print` 

這是你使用的shell的一個特徵。你可以搜索「反引號」來確定你的shell如何處理這個。

+0

完全按照我的預期工作。 – ferdynator

6

你的反應是接近的,但是這可能會更好地工作:

find -regex 'regex' -exec zip filname.zip {} + 

這將會把所有匹配的文件名爲filename.zip一個zip文件。您不必擔心文件名中的特殊字符(如換行符),如果您輸入了結果,則會出現這種情況。

+0

加號的好工作。我總是忘記'find'可以做到這一點。 – jheddings

+0

做什麼?帶+號 – aliopi

+2

@aliopi +意味着用所有文件名替換{},而不是爲每個文件執行一次該命令。 –

相關問題