分割不可用?

分割不可用?

我刚刚尝试在运行 Debian 的 Readynas 服务器上运行一个简单的 shell 脚本,但该split命令似乎不可用。

这是一个我不能过多摆弄的服务器,所以如果有一种方法可以split在不破坏其他原生 ReadyNAS 功能的情况下运行,我会非常高兴。

谢谢

答案1

split是一个标准实用程序,包含在coreutils包裹。该软件包具有“必需”优先级(并被标记为“必需”),因此正常的 Debian 安装都会有它。

我猜你的服务器正在运行忙碌盒公用事业。 BusyBox 是一套实用程序,专为磁盘空间或内存较少的系统而设计。它的许多功能都是可选的,Debian 的普通 BusyBox 软件包不包含该split实用程序(大概是因为它不经常使用)。

split您可以使用该head实用程序和一些 shell 编程来模拟 的一些用法。这是一个快速而肮脏的脚本,用于将输入分割成固定大小的块:

#!/bin/sh
i=1000000001          # Below we'll strip away the leading 1; this is
                      # a trick to have leading zeroes in the file names.
prefix=$1             # The files will be called ${prefix}000000001, etc.
chunk_size=$2         # in bytes, or 42k or 42m for kB and MB respectively
while
  head -q -c "$chunk_size" >"$prefix${i#1}"
  [ -s "$prefix${i#1}" ]   # Stop when we make an empty chunk.
do
  i=$((i+1))
done
rm "$prefix${i#1}"         # Remove the last, zero-sized chunk.

将该脚本存储为simple_split.使用示例:

tar -cf - /big/dir | simple_split foo.tar- 1m

此命令创建 1MB 大小的文件,称为foo.tar-000000001foo.tar-000000002等。您可以使用cat;来组装它们。请注意,由于数字的固定宽度格式,文件按其名称的词汇顺序排序。

cat foo.tar-????????? | tar -tf -

相关内容