特定のサイズより大きいフォルダ内のすべてのファイルを処理する[重複]

特定のサイズより大きいフォルダ内のすべてのファイルを処理する[重複]

いくつかのPhotoRec出力ファイルを処理していますが、特定のサイズしきい値(10Mなど)より大きいファイルにのみ興味があります。他の投稿で再帰的に並べ替える方法を見つけました(サイズに応じてファイルを再帰的に並べ替える)しかし、これらすべてのファイルを別の場所に移動すると仮定するとわかりません。

これで、フォルダ構造は次のようになります。


親フォルダ

  • 再び1
  • 再び2
  • について...

答え1

このfindコマンドを使用すると、サイズが10Mを超えるすべてのファイルを見つけて移動できます。

find . -type f -size +10M -exec mv -t path/to/target/dir {} +

この構文を使用すると、mvすべてのファイルに対して1つのプロセスのみを使用するか、必要なプロセスのみを使用します。これは、引数が多すぎると内部的に処理され、必要に応じて2番目と3番目の3つの異なるプロセスをトリガーできるためです。

うまくいくことは、複数の引数を使用してコマンドを実行できることを意味し、-exec <command> {} \;引数ごとにプロセスを開始する構文を使用することをお勧めします。使用すべき重要な点{} +は、中かっことの間に何も存在できないことです+。したがって、このコマンドでは、パラメータを使用してターゲットディレクトリを定義する必要がmvあります。-t

関連情報