tar --exclude '*/logs' 不起作用

tar --exclude '*/logs' 不起作用

我尝试在 tar 提示符中排除每个名为“logs”的文件夹(我不需要备份所有日志文件)

简化后的提示如下:

tar -cvpf backup.tar servers --exclude='*/logs'

我的文件系统是这样的:

/home/
    backup.sh
    servers/
        server1/
            logs/
                logfile1
                logfile2
        server2/
            logs/
                logfile1
                logfile2
        [server3 ... server100]/

如果我运行该脚本,它不会排除日志文件夹,而如果我运行以下命令,它会排除日志文件夹:

tar -cvpf backup.tar servers --exclude=server1/logs --exclude=server2/logs (and so on for the rest of the servers)

那么我如何更改我的命令,以便我不必为每个服务器复制粘贴排除命令,并且很可能会产生一些错误?

答案1

对于 GNU tar (v. 1.29),它对我来说适用于tar cvf foo.tar --exclude "*/logs" servers.

看来该--exclude选项仅适用于命令行上其后列出的路径,因此这不会排除a/logs

tar cvf foo.tar servers/a --exclude "*/logs" servers/{b,c}

不过,我看不到手册页中明确提到的内容(但概要像往常一样在文件之前列出了选项)。

相关内容