我如何备份大量的小文件?

Windows文件系统是通过samba挂载的,我试图压缩大量的小文件:

find /path/to/files/ -newermt "2012-01-01 00:00:00" -path '*/*log.txt' -exec tar cvfz log_file_system.tar.gz {} + 

但过了一会,tarball的大小被重置。

 /path/to/files/log1.txt tar: Removing leading `/' from member names <- the size of the tar became zero /path/to/files/log2.txt 

为什么发生这种情况? 我该如何解决这个问题?

-exec“+”选项只会build立一个长度有限的命令行。 一旦总的命令行长度超过这个大小,它将启动一个新的命令行。 这个问题类似于xargs。

您将要使用-T-将input的文件名input到tar。