スプリットはできませんか?

スプリットはできませんか?

私はDebianを実行しているReadynasサーバーで単純なシェルスクリプトを実行してみましたが、splitコマンドが機能しないようです。

これは私があまり扱いにくいサーバーなので、split他の基本的なReadyNAS機能を損なうことなく動作させる方法がある場合はとても嬉しいです。

ありがとう

答え1

splitに含まれる標準ユーティリティです。coreutilsパック。このパッケージは「必須」優先順位を持っているため(そして「必須」と表示されます)、通常のDebianインストールではこれがあります。

サーバーが稼働していると思います。忙しい箱便利です。 BusyBoxは、ディスク容量やメモリが少ないシステム用に設計されたユーティリティの集まりです。多くの機能はオプションであり、Debian の汎用 BusyBox パッケージにはこのsplitユーティリティは含まれていません (おそらく頻繁に使用されないため)。

splitこのheadユーティリティといくつかのシェルプログラミングを使用して、いくつかの使用法をシミュレートできます。以下は、入力を固定サイズのチャンクに分割するための迅速で汚れたスクリプトです。

#!/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-000000001。 ;を使って組み立てるfoo.tar-000000002ことができますcat。数値の固定幅形式のため、ファイルは名前に基づいてアルファベット順にソートされます。

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

関連情報