ディレクトリ内で、指定された合計サイズを持つ最大ファイルを選択し、別のディレクトリに移動したい。選択のためにファイルをリストしている間、それらを名前でソートする必要があります。bash:合計サイズ制限を持つ最大ファイルを選択するための1つのライナー
例として、合計サイズが500MBで、各ファイルサイズが500MB未満であるとしましょう。
使用CASE1:
- a.bz2の200メガバイト
- b.bz2 100メガバイト
- c.bz2の300メガバイト
d.bz2の400メガバイト
移動a.bz2とb.bz2(合計= 300MB)をディレクトリ../selected(3番目のファイルを選択すると合計サイズが500MBを超えるため)
ユースケース2:
- a.bz2の200メガバイト
- b.bz2 200メガバイト
- c.bz2の100メガバイト
d.bz2の400メガバイト
移動。 bz2、b.bz2、c.bz2(合計= 500MB)をディレクトリ../selected
私は各ファイルのサイズを追加する方法を知っていますが、Cプログラムのようなループを壊すには、スクリプトを書く必要があります。 (|)の代わりに、私はそれがパイプを使用して1つのライナーにしたい
ワンライナーとしての資格が、かどうかわかりませんか?ファイルのサイズは常に増加していますか?ファイルの最大数に合わせようとしていますか?これは半分焼いたようです... – dawg