当前位置: 首页 > 面试题库 >

Shell命令到tar目录,不包括某些文件/文件夹

田德馨
2023-03-14
问题内容

是否有一个简单的shell命令/脚本支持将某些文件/文件夹排除在存档之外?

我有一个目录,该目录需要与一个子目录一起存档,该子目录包含许多不需要备份的非常大的文件。

不完全解决方案:

tar --exclude=PATTERN命令匹配给定的模式并排除了这些文件,但是我需要忽略特定的文件和文件夹(完整的文件路径),否则可能会排除有效的文件。

我还可以使用find命令创建文件列表,并排除我不想存档的文件并将该列表传递给tar,但这仅适用于少量文件。我有成千上万。

我开始认为唯一的解决方案是创建一个包含要排除的文件/文件夹列表的文件,然后使用rsync with --exclude- from=file将所有文件复制到tmp目录,然后使用tar将该目录存档。

谁能想到更好/更有效的解决方案?

编辑: Charles Ma解决方案效果很好。最大的难题是--exclude='./folder' 必须
位于tar命令的开头。完整命令(首先是cd,因此备份是相对于该目录的):

cd /folder_to_backup
tar --exclude='./folder' --exclude='./upload/folder2' -zcvf /backup/filename.tgz .

问题答案:

您可以为tar设置多个排除选项,以便

$ tar --exclude='./folder' --exclude='./upload/folder2' -zcvf /backup/filename.tgz .

等会工作。请 务必--exclude 之前 的源和目标项目。



 类似资料:
  • 我想在IBMi上使用PASE tar命令从存档中排除一些目录,但[-X exclude File]选项似乎不适合我。 我尝试使用一个只包含文件名(/home/JSMITH/数据/sub2/file2.txt)的排除文件,然后使用一个只包含模式(*.txt)的排除文件,两个存档操作都没有遗漏任何内容。 给定以下目录结构: 以及以下命令: 整个/home/JSMITH/data结构都包含在结果存档中。

  • 问题内容: 我知道当您在shell上时,只能使用在PATH上某个目录中可以找到的命令。即使我也不知道如何查看PATH变量上的目录(这是另一个可以回答的好问题),我想知道的是: 我来壳写: 我想知道shell上的命令,该命令可以告诉我该命令位于何处。换句话说,此“可执行文件”位于何处? 就像是: 任何人? 问题答案: 如果您使用的是Bash或zsh,请使用以下命令: 这将显示目标是内置,函数,别名还

  • 未将hibernate-cfg.xml添加到war classes文件夹中。我使用以下脚本将web applcation部署到tomcat。复制后,当我启动tomcat时,错误enotFoundException下面的gettign:类路径资源[hibernate.cfg.xml]无法解析URL,因为它不存在

  • 问题内容: 假设我有一个目录中,其中有3个符号连接其他目录 ,和。我想列出中的所有文件,包括在那些,和。 为了更通用,我想列出所有文件,包括目录中的符号链接文件。,等停止在符号链接上,而无需导航到它们以进一步列出。 问题答案: 该选项将完成您想要的。它取消引用符号链接。 因此,您的命令将是: 您也可以使用 该选项指示find跟随符号链接到目录。 在Mac OS X上使用 如已弃用。

  • 每次我试图编译它来测试它不recongnise文件

  • 大家好 (1)命令位置 rpm -ql p7zip 结果: /usr/bin/7za (2)压缩包是:根目录只有文件夹 (3)解压命令 7za e nginx.7z -r -o./web 结果:子目录里的文件都跑到根了