📅  最后修改于: 2023-12-03 15:05:29.287000             🧑  作者: Mango
在使用tar
命令打包压缩文件的时候,我们有时需要排除一些不必要的目录或者文件,以免占用额外的存储空间。本文将介绍如何使用tar
命令排除文件中的目录。
--exclude
选项tar
命令提供了一个--exclude
选项,可以用来指定需要排除的文件或目录。该选项的使用格式如下:
tar --exclude=PATTERN -zcvf target.tar.gz source_dir/
其中,PATTERN
指定需要排除的目录或文件名称模式(支持通配符),target.tar.gz
指定打包后的文件名,source_dir/
指定需要打包的目录。
例如,如果要排除目录logs
和文件*.log
,可以执行以下命令:
tar --exclude=logs --exclude=*.log -zcvf target.tar.gz source_dir/
该命令将打包source_dir/
目录下除了logs
目录和.log
文件外的所有内容,并将打包结果保存为target.tar.gz
文件。
--exclude-from
选项除了单个排除选项之外,tar
命令还提供了--exclude-from
选项,用于从指定文件中读取需要排除的目录或文件信息。该选项的使用格式如下:
tar --exclude-from=FILE -zcvf target.tar.gz source_dir/
其中,FILE
指定存放需要排除目录或文件信息的文件名称,格式为每行一个排除项。
例如,如果有一个名为exclude.txt
的文件,其内容如下:
logs/
*.log
那么,可以执行以下命令:
tar --exclude-from=exclude.txt -zcvf target.tar.gz source_dir/
该命令将打包source_dir/
目录下除了exclude.txt
文件中列出的所有目录和文件外的所有内容,并将打包结果保存为target.tar.gz
文件。
以上两种方法都可以很方便地实现从文件中排除目录或文件的功能,具体使用哪种方法取决于个人需求以及排除项的数量和复杂度。需要注意的是,在排除目录或文件时,一定要保证排除项的模式匹配正确,否则可能会将不应该排除的文件也一同排除掉。