私は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 -