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
为什么会发生这种情况?我该如何解决?
答案1
-exec “+” 选项只会构建有限长度的命令行。一旦命令行总长度超过此大小,它将启动新的命令行。此问题与 xargs 类似。
您需要使用 -T- 将文件名输入通过管道传输到 tar。