如何忽略大于 100MB 的文件进行存档

Far*_*zun 8 archive compression tar file-size

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

Oli*_*Oli 9

是的,可能还有其他几种方法可以做到这一点,但您可能最好使用find它,因为它是如此可调。

find /path/to/dir -size -100M | xargs tar cvf archive.tar
Run Code Online (Sandbox Code Playgroud)

或者

tar cvf archive.tar $(find /path/to/dir -size -100M)
Run Code Online (Sandbox Code Playgroud)

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

find /path/to/dir -maxdepth 1 -size -100M | xargs tar cvf archive.tar
Run Code Online (Sandbox Code Playgroud)

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

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

find /path/ -size -100M | sed 's/ /\\ /g' | xargs tar cvf archive.tar

find /path/ -size -100M -exec echo '"{}"' \; | xargs tar cvf archive.tar
Run Code Online (Sandbox Code Playgroud)

  • 如果 OP 的文件名包含空格,这两个选项都可能会出现问题。 (2认同)