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

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

Not quite solutions:

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

我还可以使用find命令创建一个文件列表,排除我不想归档的文件,并将列表传递给tar,但这只适用于少量文件.我有数万.

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

有人能想出更好/更有效的解决方案吗?

编辑:Charles Ma的解决方案效果很好.最大的问题是,--exclude='./folder' MUST应该位于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 .

etc将起作用.使用sure--excludebefore作为源项和目标项.

Linux相关问答推荐

有没有方法在Linux中连接两个程序输出/输入?

在新环境中使用Unicode范围的sed表达式有问题

2023 年如何在现代 Linux 上安装 Firebird SQL 版本 3 或 4?

如何在充满 csv 的目录中获得不同的值计数

如何比较 2 个文件并将第二个文件的所有行打印到输出文件 awk

linux shell获取多文件交集

如何使用awk或其他方法提取双引号中的子字符串?

在三星 chromebook 上编程

在 puppet 中管理 linux 的用户密码

ld-linux.so.2 和 linux-gate.so.1 是什么?

如何在 linux 上为 JNI 应用程序编译动态库?

如何将整个文件夹从 Amazon EC2 Linux 实例复制到本地 Linux 机器?

低功耗蓝牙:在 linux 中监听通知/指示

execv() 和 fork() 的时间浪费

如何下载较旧的 google play 服务?

scp 使用私钥身份验证将目录复制到另一台服务器

在文件夹中的 gzip 文件中查找字符串

如何使用终端打开-虚线文件名?

在类 Unix 系统中上次运行的 cron 作业(job)的详细信息?

将默认 Python 版本从 2.4 更改为 2.6