Tar:避免归档大于特定大小的文件

nix*_*win 12 backup archive tar

我想归档小于 3 MB 的文件(使用 tar)。但我也想保留这些文件所在的目录。(所以我不能使用find命令)。我只想避免大小超过 3 MB 的文件。如何才能做到这一点?

Mik*_*eyB 23

比你想象的更简单:

$ tar cf small-archive.tar /big/tree --exclude-from <(find /big/tree -size +3M)
Run Code Online (Sandbox Code Playgroud)

在半相关的注释上(与您不能使用 find 的声明有关)获取路径下所有文件(包括目录)的列表减去大于 3MiB 的文件,请使用:

$ find . -size -3M -o -type d
Run Code Online (Sandbox Code Playgroud)

然后你可以这样做:

$ tar cf small-archive.tar --no-recursion --files-from <(find /big/tree -size -3M -o -type d)
Run Code Online (Sandbox Code Playgroud)

但我更喜欢第一个,因为它更简单,清楚地表达了你想要的东西,而且不会带来太多的惊喜。

  • +1 什么!SF上有礼貌,友好的人?!? (2认同)