如何归档忽略大于100MB的文件

我正在尝试使用tar存档文件并忽略大于100MB的文件。 那可能吗?
PS:不必使用焦油。

是的,可能有更多的方法可以做到这一点,但你可能最好find它,因为它是如此可调。

 find /path/to/dir -size -100M | xargs tar cvf archive.tar 

要么

 tar cvf archive.tar $(find /path/to/dir -size -100M) 

如果当前文件夹中有其他目录您不想存档,请使用:

 find /path/to/dir -maxdepth 1 -size -100M | xargs tar cvf archive.tar 

根据下面的注释,空格可能会抛出一些错误,但在我的测试中,它们似乎仍然在使用第一种方法时添加到存档中(本身有点奇怪)但是如果你担心,你可以修复find命令用转义版本替换空格。

与以往一样,有十亿种方法可以做到这一点。

 find /path/ -size -100M | sed 's/ /\\ /g' | xargs tar cvf archive.tar find /path/ -size -100M -exec echo '"{}"' \; | xargs tar cvf archive.tar 

只需排除这样的大文件:

tar cf archive.tar / path / to / archive –exclude-from <(find / path / to / archive -size + 100M)