gpt4 book ai didi

unix - Tar:创建除一个之外的存档排除目录

转载 作者:行者123 更新时间:2023-12-01 17:27:48 24 4
gpt4 key购买 nike

我有一些包含一些文件的目录

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

有一些简单的方法吗?谢谢

最佳答案

一种方法是首先排除 mydir,然后附加 my_archive_dir

tar cvf dir_archive.tar --exclude=dir_archive/mydir dir_archive
tar rvf dir_archive.tar dir_archive/mydir/my_archive_dir
gzip dir_archive.tar

不幸的是,附加功能不适用于压缩文件。

--exclude 选项采用模式作为参数,因此如果要排除的目录的名称相似,您可以避免它们并仍然包含存档目录

tar cvfz dir_archive.tar.gz --exclude=dir_archive/mydir/exclude* dir_archive

还可以创建一个文件,其中包含您想要包含的所有文件的名称,并使用选项 -T--files-from 将该列表提供给 tar > (或以类似的方式列出要排除的文件,并使用选项 -X 给出列表)。

filelist.txt:dir_archivedir_archive/temp1dir_archive/mydirdir_archive/mydir/temp2dir_archive/mydir/my_archive_dirdir_archive/mydir/my_archive_dir/temp7
tar cvfz dir_archive.tar.gz --no-recursion --files-from filelist.txt

关于unix - Tar:创建除一个之外的存档排除目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10227892/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com