我有一些文件的目录
dir_archive/somedir1
dir_archive/somedir2
dir_archive/somedir3
dir_archive/mydir
dir_archive/mydir/excludedir1
dir_archive/mydir/excludedir2
dir_archive/mydir/excludedir3
dir_archive/mydir/many_other_directories...
dir_archive/mydir/my_archive_dir
我想创建tar(gz)存档dir_archive.tar.gz,不包括所有文件和目录
dir_archive/mydir/excludedir1
dir_archive/mydir/excludedir2
dir_archive/mydir/excludedir3
dir_archive/mydir/many_other_directories...
但包括
dir_archive/mydir/my_archive_dir
我不想为每个目录使用 --exclude
tar cvfz dir_archive.tar.gz --exclude=dir_archive/mydir/excludedir1 --exclude=dir_archive/mydir/excludedir2 --exclude=dir_archive/mydir/excludedir3
我尝试使用 --add-file
,但它不起作用:
tar cvfz dir_archive.tar.gz --exclude=dir_archive/mydir --add-file=dir_archive/mydir/my_archive_dir dir_archive
存在一些简单的方法?谢谢
1 回答
一种方法是首先排除
mydir
然后追加my_archive_dir
不幸的是,附加功能不适用于压缩档案 .
--exclude
选项将模式作为参数,因此如果要排除的目录名称相似,则可以避免它们并仍包含存档目录它也可以创建要包含的所有文件名的文件,并给该列表焦油选项
-T
或--files-from
(或以类似的方式列表中的文件被排除在外,并给予与选项-X
列表) .