你可以用Linux Mint和它的终端轻松地从压缩文件中排除特定的文件和/或文件夹。
在这篇文章中,我们将展示几个有用的例子,说明如何压缩文件夹并排除特定的文件和文件夹。排除文件可能是由于敏感数据、大尺寸或特定的文件类型,如:zip、png 或 csv。
第1步:如何在Linux Mint中用终端压缩文件
首先,让我们看看在Linux Mint中如何用终端对文件夹或文件进行存档。
在下面的例子中,我们将使用一个名为:Mapache,它将被用于我们的例子。所以你可以从上面的链接下载这个文件夹。
因此,为了压缩Mapache文件夹,我们可以使用以下命令。
cd ~/Downloads
zip -r mapache.zip Mapache
复制代码
注意:命令cd ~/Downloads
是可选的,可以导航到Mapache的父文件夹。
保存日期和时间的压缩文件
如果你想保留档案的历史日期,你可以尝试使用下一个命令。
zip -r mapache_$(date +\%Y-\%m-\%d-\%H-\%M).zip Mapache
复制代码
这将产生一个类似的压缩文件。
mapache_2021-07-21-00-26
不包括父目录的Zip文件夹
要压缩一个不包括父文件夹的文件夹,请使用。
cd Mapache
zip -r ../mapache_$(date +\%Y-\%m-\%d-\%H-\%M).zip . -x */\.* *.git* *.idea* "**/screenshot.png" ./screenshot.png
复制代码
第2步:如何从压缩文件中排除文件
要使用zip命令从存档中排除一个文件,可以使用。
-x
--exclude
两者是可以互换的。
从根文件夹中排除文件
因此,举例来说,让我们试着排除一个文件:screenshot.png
。如果该文件在顶层,那么可以通过以下方式排除它
zip -r mapache.zip Mapache -x "screenshot.png"
复制代码
对于排除多个文件,我们可以在-x
后面列出所有文件。
zip -r mapache.zip Mapache -x "screenshot.png" "donate.gif"
复制代码
注意1:这只在文件位于顶层的情况下有效。
注2:你可以有多个排除选项。zip -r mapache.zip Mapache -x "screenshot.png" -x "donate.gif"
排除子文件夹中的文件
如果文件位于子文件夹中,可以用稍微不同的语法将它们排除。
zip -r mapache.zip Mapache -x "**/screenshot.png"
复制代码
其中**/
是用来显示递归搜索的。
通过文件扩展名排除文件
假设你想**排除特定的文件类型,如:.csv
**,.zip
等。这可以通过下一个命令完成。
zip -r mapache.zip Mapache -x "*.csv"
复制代码
第3步:如何从压缩文件中排除文件夹
要从压缩文件中排除文件夹,你可以遵循一点不同的语法。比方说,你想排除文件夹documentation
,那么你可以这样做。
zip -r mapache.zip Mapache --exclude=*documentation*
复制代码
第4步:流行的文件/文件夹排除法–排除Git、隐藏文件
在这个步骤中,列出了最流行的文件排除方法,比如。
排除所有以点开始的文件夹(和文件)(隐藏文件)。
zip -r mapache.zip Mapache --exclude=*/.*
复制代码
从压缩文件中排除.git目录
zip -r mapache.zip Mapache -x "*.git*"
复制代码
或
zip -r mapache.zip Mapache -x '*.git*'
复制代码
用git从压缩文件中排除.git目录
作为git项目的zip命令的替代品,你可以使用。
git archive -o mapache.zip HEAD
复制代码
这个命令的好处是,它将排除git文件夹和gitignore文件中的任何文件。
从压缩文件中排除zip文件
下一个命令将阻止所有的存档文件被压缩。
zip -r mapache.zip Mapache -x \*.zip
复制代码
第5步:用脚本来压缩文件并排除特定的文件和文件夹
假设你想建立一个脚本,它要压缩文件夹并排除文件夹和文件。
要做到这一点,你可以创建一个新的文本文件,名为mapache.sh
,并将下一个内容放在里面。
#!/bin/bash
cd Mapache
zip -r ../mapache_$(date +\%Y-\%m-\%d-\%H-\%M).zip . -x */\.* *.git* *.idea* "**/screenshot.png" ./screenshot.png
复制代码
使其可由执行。
chmod +x mapache.sh
复制代码
该文件应位于与文件夹Mapache
的同一级别。