为 tar -T 生成适合给定媒体大小的文件集

sab*_*ujp 5 scripting tar disk-usage

任何人都可以建议一个脚本,它将一个或多个目录的名称和媒体大小作为输入,并输出文件列表以使用-T(假设没有压缩)输入到 tar ?

scdbackup/sdvdbackup有点这样做,但它充满了我不需要的膨胀。所以基本上寻找这样的东西:

./splitTars file1 file2 .... 2.0T
Run Code Online (Sandbox Code Playgroud)

wherefile可以是文件或目录,最后一个参数是媒体的大小(例如 2TB)。然后它应该为每个 tar 存档输出一个文件列表,并为太大而无法放入媒体的文件发出警告。

如果不存在这样的情况,一种方法是使用 find 创建文件列表,以增加或减少的大小重新排列它们,然后开始将列表切成碎片。

小智 0

find有一个按尺寸过滤的选项:

# find file1 file2 .... -size -2000G
Run Code Online (Sandbox Code Playgroud)