如何使用 tar 压缩文件时自动排除特定文件
目录

在 Mac 系统上使用 tar 命令压缩文件时,通常会发现压缩包中包含一些不需要的文件和文件夹,比如 __MACOSX 文件夹、__pycache__ 文件夹以及 .pyc 文件等。本文将介绍两种方法:临时设置和永久设置,帮助你在使用 tar 命令时自动排除这些文件。
主要是**__MACOSX文件夹会生成所有文件的 以._**开头的文件 的版本,且是在打包过程产生的,记录一下。
一、临时设置:在 tar 命令中排除特定文件
如果你只是偶尔需要排除一些不必要的文件和文件夹,可以在使用 tar 命令时直接添加 --exclude 选项,来指定需要排除的内容。
举例
1 | tar --exclude="*/__MACOSX/*" --exclude="*/__pycache__/*" --exclude="*.pyc" -zcvf archive.tar.gz /path/to/folder |
选项说明
--exclude:指定在压缩过程中需要排除的文件或目录模式。
"*/__MACOSX/*":排除所有__MACOSX文件夹及其内容。"*/__pycache__/*":排除所有__pycache__文件夹及其内容。"*.pyc":排除所有以.pyc结尾的文件。
-zcvf:
-z:使用 gzip 压缩。-c:创建一个新的压缩文件。-v:显示压缩过程中的文件列表。-f:指定输出文件的名称。
这种方法简单直观,适合一次性使用的情况,但每次执行命令时都需要手动输入完整的命令。

二、永久设置:为 tar 命令设置别名
如果你经常需要压缩文件并想避免每次都输入排除选项,可以通过为 tar 命令创建别名的方式,实现自动排除特定文件的功能。
在系统环境文件中设置tar的 alias plus版本
配置文件有:
- ~/.bash_profile
- ~/.bashrc
- ~/.zshrc
直接将
alias追加到配置文件:打开终端,使用以下命令将别名添加到配置文件(
~/.bash_profile)中(配置文件根据系统选择):1
echo 'alias tar="tar --exclude=\"*/__MACOSX/*\" --exclude=\"*/__pycache__/*\" --exclude=\"*.pyc\""' >> ~/.bash_profile
使新的别名生效:
在终端中运行以下命令重新加载配置文件:
1
source ~/.bash_profile
这样,每次运行 tar 命令时,都会自动应用排除选项。
扩展
export: 用于环境变量,影响范围广(包括子进程)。alias: 用于命令简化,只影响当前 shell
总结
通过使用 tar 命令压缩文件时自动排除不必要的文件,你可以让压缩包更加简洁,节省存储空间和传输时间。根据自己的需要选择临时设置或永久设置,让你的工作更高效!希望这些技巧能够帮助到你!
一直在努力, 记得点个在看哦!
作者:
胖胖不胖
版权声明:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 不止于python
感谢您的支持,我会继续努力!
微信支付
支付宝