Command-Line
壓縮目錄中的所有文件?
有沒有辦法使用
zip
命令壓縮給定目錄中的所有文件?我聽說過使用*.*
,但我希望它也適用於無副檔名文件。
你可以使用
*
; 沒有必要*.*
。文件副檔名在 Unix 上並不特殊。*
匹配零個或多個字元——包括一個點。所以它匹配foo.png
,因為那是零個或多個字元(準確地說是七個)。請注意,
*
預設情況下不匹配以點開頭的文件(也不匹配*.*
)。這通常是你想要的。如果不是,在 bash 中,如果你shopt -s dotglob
願意(但仍會排除.
and..
)。其他 shell 有不同的方式(或根本沒有)包含點文件。或者,
zip
還有一個-r
(遞歸)選項可以一次完成整個目錄樹(不必擔心點文件問題):zip -r myfiles.zip mydir
mydir
包含您的文件的目錄在哪裡。請注意,生成的 zip 將包含目錄結構以及文件。正如 peterph 在他的評論中指出的那樣,這通常被視為一件好事:提取 zip 會將所有提取的文件整齊地儲存在一個子目錄中。您還可以使用
-j
/--junk-paths
選項告訴 zip 不要儲存路徑。該
zip
命令附帶文件,告訴您它的所有(許多)選項;鍵入man zip
以查看該文件。這不是 zip 獨有的。您可以通過這種方式獲取大多數命令的文件。