私は次のタスクを実行する「Linux方式」を見つけようとしています。私はそれぞれ、さまざまなファイル形式の複数のファイルを含む複数のサブディレクトリを持つディレクトリを持っています。検索コマンドを使用して簡単に絞り込むことができます。
find . -name "*.jpg"
これにより、.jpg で終わるすべてのファイルのリストが返されます。さらに(別々に)dirsplitコマンドを使用して、ディレクトリをそれぞれ100 MBのファイルグループに分割できます。
dirsplit --size 100MB -m --expmode 1 .
今、2つの質問があります。まず、dirsplitが "find"コマンドの出力でのみ機能するように、これら2つのコマンドを結合したいと思います。つまり、すべてを並べ替えるのではなく、対応するJPGだけを並べ替えます。 Dirsplitでパイプすることは可能ですか?
2番目の問題は「-m」フラグです。ここで見ることができます。https://manned.org/dirsplit/15f31c9aこれにより、dirsplitは実際にファイルを目的のフォルダに移動します。私の質問は、移動ではなくコピーが可能かどうかです。つまり、ファイルを現在の場所に保持しますが、100グループに追加のコピーを作成します。
どんなアイデアがありますか?
ベストアンサー1
dirsplit -H
find で使用する例など、コマンドに関する詳細情報が提供されます。
find . -name "*.jpg" -printf "%s %p" | dirsplit -T- --size 100MB --expmode 1 -L
-T-
「形式の標準入力からファイルのリストを読みます。ファイル名 ファイルサイズ」
-L
ハードリンクの作成(コピーオプションがないようです)